Spring Cloud Feign组件
采用Spring Cloud微服务框架后,经常会涉及到服务间调用,服务间调用采用了Feign组件。 由于之前有使用dubbo经验。dubbo的负载均衡策略(轮训、最小连接数、随机轮训、加权轮训),dubbo失败策略(快速失败、失败重试等等), 所以Feign负载均衡策略的是什么? 失败后是否会重试,重试策略又是什么? 带这个疑问,查了一些资料,最后还是看了下代码。毕竟代码就是一切 Spring boot集成Feign的大概流程: 1、利用 FeignAutoConfiguration 自动配置。并根据EnableFeignClients 自动注册产生Feign的代理类。 2、注册方式利用 FeignClientFactoryBean,熟悉Spring知道FactoryBean 产生bean的工厂,有个重要方法getObject产生FeignClient容器bean 3、同时代理类中使用hystrix做资源隔离,Feign代理类中 构造 RequestTemplate ,RequestTemlate要做的向负载均衡选中的server发送http请求,并进行编码和解码一系列操作。 下面只是粗略的看了下整体流程,先有整体再有细节吧,下面利用IDEA看下细节: 一、Feign失败重试 SynchronousMethodHandler的方法中的处理逻辑 : @Override public