上一篇文件介绍了使用ribbon实现负载均衡,实现方式是通过配置一个被@LoadBalanced修饰的restTemplate来实现的,下面我们通过fegin来实现负载均衡
1.引入起步依赖
2.配置一个重发请求类,处理请求失败重发策略
3.写一个接口加上@FeignClient注解,用来在请求发起的时候被解析
4.写上对应的controller和service处理相关请求
5.最后在启动类上配置@EnableFeignClients
6.启动服务,多次请求localhost:8765/feign/feignInit,如下结果交替出现
总结
( 1) 首先通过@EnableFeignClients 注解开启 Feignclient 的功能。只有这个注解存在,才
会在程序启动时开启对@FeignClient 注解的包扫描
(2 )根据 Feign的规则实现接口,井在接口上面加上@FeignClient
(3 )程序启动后,会进行包扫描,扫描所有的@FeignClient 注解 ,并将这些信息
注入 IoC 容器中。
)当接口的方法被调用时 通过 JDK 的代理来生成 体的RequestTemplate 棋根对象
)根据 RequestTemplate 再生成 Http 请求的Request 对象
( 6 ) Request 对象交给 Client 去处理 其中 Client 的网络请求框架可以是 HttpURLConnection
HttpClient和OkHttp
(7 )最后 Client 被封装到 LoadBalanceClient 类,这个类结合类 Ribbon 做到了负载均衡
end