当前位置: 首页 > wzjs >正文

木马工业设计公司电子商务seo名词解释

木马工业设计公司,电子商务seo名词解释,郑州富士康发生了什么,男女直接做视频教学视频网站在微服务架构中,由于业务功能的分工不同,我们把项目拆分为多个独立的服务,并常常将其部署在不同的服务器上,这个时候如果服务A的某个功能需要借助服务B来实现,那么这个时候如何去调用就成了问题,目前有一种…

在微服务架构中,由于业务功能的分工不同,我们把项目拆分为多个独立的服务,并常常将其部署在不同的服务器上,这个时候如果服务A的某个功能需要借助服务B来实现,那么这个时候如何去调用就成了问题,目前有一种常用的服务调用方法OpenFeign,用其可以实现服务之间的调用。

使用方法

1.原理

        当一个服务通过openfeign向另一个服务发起远程调用时,feign会发起一个http请求,请求路径就是配置的url,服务A先将这个请求发往nacos,nacos根据服务发起者定义的服务目标名称寻找对应的服务,并将请求转发过去,并响应结果。

2.环境准备

        我们要实现服务的调用,首先需要让他们之间互相能够发现彼此的存在,所以我们这里采用nacos作为服务的注册发现。

        将服务A(serverA)和服务B(serverB)注册到nacos当中

        在它们的pom文件中添加以下依赖(nacos当中若配置了其他的属性需要再添加如nacos-config等依赖)

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

3.操作流程

        假设我们需要让服务A调用服务B的某个方法,我们首先在服务A的pom文件中添加如下依赖

<!-- Spring Cloud 微服务远程调用 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><dependency><groupId>io.github.openfeign</groupId><artifactId>feign-httpclient</artifactId></dependency><!--feign支持Multipart格式传参--><dependency><groupId>io.github.openfeign.form</groupId><artifactId>feign-form</artifactId><version>3.8.0</version></dependency><dependency><groupId>io.github.openfeign.form</groupId><artifactId>feign-form-spring</artifactId><version>3.8.0</version></dependency>

以下是实现远程调用的一个样例

假设我们的需要调用服务B的接口方法是这样的

public class ServerBController {@AutowiredServerBService serverBservice;@RequestMapping(value = "/media/upload/coursefile", consumes = MediaType.MULTIPART_FORM_DATA_VALU)public UploadFileResultDto upload(@RequestPart("filedata") MultipartFile multipartFile,@RequestParam(value= "objectName",required=false) String objectName) throws IOException {//文件信息UploadFileParamDto uploadFileParamDto = new UploadFileParamDto();//原始文件名称uploadFileParamDto.setFilename(multipartFile.getOriginalFilename());//文件大小uploadFileParamDto.setFileSize(multipartFile.getSize());//文件类型uploadFileParamDto.setFileType("001001");//获取文件File TempFile = File.createTempFile("md5", ".temp");multipartFile.transferTo(TempFile);Long companyId = 1L;//文件路径String absolutePath = TempFile.getAbsolutePath();//上传图片return mediaFileService.uploadMediaFile(companyId,uploadFileParamDto,absolutePath,objectName);}}

我们在服务A的类路径下创建一个包“feignClient”,在其下面创建一个远程调用接口ServerBClient

                           //这里为可选项,配置文件为你想要实现的功能     //fallback逻辑(可选)
@FeignClient(value = "ServerB",configuration = MultipartSupportConfig.class,fallbackFactory = MediaServiceClientFallbackFactory.class)
public interface ServerBClient {//这里要和被调用处的接口路径保持一致@RequestMapping(value = "/media/upload/coursefile",consumes = MediaType.MULTIPART_FORM_DATA_VALUE)String upload(@RequestPart("filedata") MultipartFile upload,@RequestParam(value = "objectName",required=false) String objectName);
}

注意在这个接口中的抽象类需要和被调用处的方法的请求方式、请求路径、参数都要保持一致

在FeignClient中定义的configuration和fallbackFactory需要自己定义,可以先删掉不写

在服务A的启动类上加上这个注解,表示启动服务远程调用

//将其中的包路径替换为你的包路径
@EnableFeignClients(basePackages={"com.enjoylearning.content.feignClient"})

 这个时候我们启动服务A和服务B,让其在nacos中的服务列表中出现。

假设我们在服务A的Service层中需要调用服务B的这个方法,那么我们应该这样调用

@Service
public class ServiceAServiceImpl implements ServiceAService {@Autowiredprivate ServerBClient serverBClient;  //将远程调用接口注入@Overrideprivate void yourFunction(){//  ...  你的业务逻辑//这里通过注入的feignClient接口调用服务B的upload方法serverBClient.upload(参数A,参数B);        //  ...  你的业务逻辑 }
}

最后服务A将能够正常的调用服务B的方法。

对于configuration和fallback等内容,我将在后续的篇幅中进行讲解使用方式和原理

http://www.dtcms.com/wzjs/177157.html

相关文章:

  • 建设银行手机银行官方网站天津优化加盟
  • pc网站案例网络优化器下载
  • 设计培训网站建设快速排序优化
  • 做外贸的b2b网站抖音关键词排名系统
  • 南宁公司网站建设重庆百度整站优化
  • 网站开发哪好新闻发布系统
  • 网站建设费的摊销期手机百度app最新版下载
  • 建网站需要什么技术爱站工具包怎么使用
  • 河南网站推广怎么做1688seo优化是什么
  • 网站后台是怎么更新百度推广优化师培训
  • 刷网页赚钱优化教程
  • 济阳做网站公司百度有刷排名软件
  • 腾讯云建站多少钱网站关键词有哪些
  • 烟台产品网站建设百度号码认证平台官网首页
  • 专业的画册设计网站网络网站推广选择乐云seo
  • 大同营销型网站建设费用网站批量查询工具
  • 南宁百度网站建设公司百度官网网址
  • 国外工程建筑网站销售管理软件
  • 金银饰品那家网站做的好网站推广排名哪家公司好
  • 网站里图片的作用兰州快速seo整站优化招商
  • 做明星ps黄图网站百度seo整站优化
  • 网站建设合作协议班级优化大师免费下载学生版
  • 广西南宁网站建设有限公司百度信息流投放
  • 关于做网站的毕业设计十大洗脑广告
  • 怎样把网站做的漂亮seo每天一贴博客
  • 家教网站制作yw77731域名查询
  • 做加密网站全站加密的最低成本seo网页的基础知识
  • app开发直播功能南昌seo管理
  • c 做网站简单还是java百度推广代理商返点
  • 苏州个人网站建设自动点击关键词软件