目录
什么是Feign
回顾基于Http的RestTemplate远程调用方式
Feign的使用
什么是Feign
Feign的目的是让编写Java Http请求客户端变得更容易。之前我们用Ribbon+RestTemplate对http请求进行封装,形成一套模板化的调用方法。但实际开发中,由于对服务依赖的调用不只一处,往往一个接口被多次调用,所以通常都会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用。Feign正是在此基础上的封装组件。在Feign的实现下,我们只需要创建一个接口并使用注解的方式来配置,类似于之前Dao接口上的Mapper注解,现在是在微服务接口类上标注一个Feign注解即可。这种方式简化了Ribbon的同时,自动封装了服务调用客户端的代码量
Feign集成了Ribbon。通过轮询实现了客户端的负载均衡
回顾基于Http的RestTemplate远程调用方式
之前我们单纯使用RestTemplate需要每个请求都拼接url+参数+类文件。
https://blog.csdn.net/Delicious_Life/article/details/106216290
Feign的使用
在调用方和被调用方项目中分别导入feign的包
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
在调用方中新建一个Feign包,里面写被调用方对应的接口。注意需要使用@FeignClient来标识被调用方是哪个微服务。

需要确保被调用方存在上述/dept/list等方法
在调用方的启动类上添加注解扫描
启动项目,客户端的代码风格和正常的Restful风格无异,相比Ribbon代码更清晰易懂了。
同时也可以在ConfigBean类中配置负载均衡策略,同样实现了负载均衡~ |