使用Feign进行远程调用注意事项

使用Feign进行远程调用注意事项

提供者

Controller,暴露对外接口,并注册到注册中心。

消费者

  1. 使用@FeignClien注解到接口启用远程调用, @FeignClien(注册中心服务名字,[指定域名和端口])。
  2. 使用@GetMapping(“子路径”)指定调用的服务的路径,并和方法绑定,注入接口后调用这个方法就会创建动态代理进行远程调用。

注意事项

  1. @FeignCilent默认为参数加上@RequestBody, @PostMapping只支持一个参数,多了无法启动项目。
  2. 由于参数和返回结果的实体模型通常是有服务提供者确认的,消费者并不确定,所以通常把实体类和FeignClient接口都放在一个模块里面供消费者用maven引入后使用。而在业务模块实现这些FeignClient接口,因为注解不能继承,还要加上@GetMapper注解和@Controller注解才行(因为@Feign接口也会动态代理生成一个实例,所以会有两个@Feign接口接口实例,这是弊端)。我之前想把@feign定义的接口都放在comment模块里面,现在觉得还是要分治好,各自模块负责各自的接口定义
  3. feign文件上传,要使用@RequestPart 注解,并且设置提交模式为consumes = MediaType.MULTIPART_FORM_DATA_VALUE
  4. feign经常出现fallback没有找到的情况,很多情况是maven依赖install到本地仓库造成的,在开发中不要 install到本地仓库,应该使用源码依赖直接编译;先关掉所有服务;提供方先删掉target里面的的内容,在maven reload一下 feign;消费方也执行一样的流程(先启动比较好)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值