Feign的简介
SpringCloud提供的声明式的REST客户端,实现远程的服务的调用,只需要编写接口和SpringMVC的注解就能完成调用。
Feign = RestTemplate + Ribbon + Hystrix
Feign的用法
-
引入依赖 openfeign
-
在启动类上加 @EnableFeignClients("Feign接口所在的包名")
-
编写Feign接口,在接口上加@FeignClient("被调用的服务名")
-
在Feign接口中编写方法(对应提供者的方法),方法可以使用SpringMVC的注解
Feign的原理
实现步骤:
-
在启动类上加@EnableFeignClients启动Feign的功能,就会启动对Feign接口的扫描
-
扫描到@FeignClient注解接口,读取接口上的服务名、URL,包装后发给IOC容器
-
由IOC容器通过动态代理机制创建RequestTemplate对象,发送Http请求,交给Http客户端处理
-
Http客户端被封装到LoadBalanceClient负载均衡客户端中,交给Ribbon处理
Feign整合Ribbon
Feign默认整合了Ribbon实现负载均衡
-
全局配置
ribbon.属性 = 值
-
指定服务配置
服务名称.ribbon.属性 = 值