跨库需要远程调用OpenFeign
首先在需要远程调用的服务中引入OpenFeign的依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
1、使用远程调用必须将需要开启远程调用的服务放到注册中心中,这样开启OpenFeign后才能在注册中心找到相应的服务
(配置中心和注册中心都要加入)
2.其它服务如何调用他
首先要开启远程调用功能
其它服务调用首先也需要注册到nacos里,然后这个服务去nacos里寻找远程调用服务的地址
@EnableFeignClients(basePackages = “”) 告诉feign这些带feign接口处在哪个包下
意思是调用jdmall-coupon这个服务的@PostMapping(“/coupon/spubounds/save”)这个请求下的saveSpunBounds方法
使用 时直接在业务中引入这个接口即可,这样就能将jdmall-coupon作为远程服务来调用了
3、OpenFeign在远程调用的过程
1、如果有一个Service调用了CouponFeignService的saveSpuBounds方法CouponFeignService.saveSpuBounds(@RequestBody SpuBoundsTo spuBoundsTo)并传了一个对象,然后通过@RequestBody 就会将这个对象转为json形式。
2、然后就会去注册中心找到jdmall-coupon并向这个服务下的"/coupon/spubounds/save"发送请求
并将上一步转成的json放到请求体
3、对方服务收到请求(jdmall-coupon),并且请求体里有json数据,就会转到对方服务
@PostMapping(“/coupon/spubounds/save”)这个请求下的SpuBoundsEntity中