内部先使用 Ribbon 负载均衡算法计算server服务器,然后使用包装的 delegate 客户端实例,去完成 HTTP URL请求处理。具备负载均衡能力的 FeignClient 容器实例,所对应的类型为 LoadBalancerFeignClient 类型。前面讲到,在SpringCloud中,为了达到高可用,一个微服务至少应该部署两个以上节点,从这个角度来说,LoadBalancerFeignClient 容器实例,已经成为事实上的标配。事实上,第一个自动配置类 FeignRibbonClientAutoConfiguration,在容器的装配次序上,是优先于第二个自动配置类 FeignAutoConfiguration 的。 HttpClientFeignLoadBalancedConfiguration.class该配置类,负责配置一个包装 ApacheHttpClient 实例的 LoadBalancerFeignClient负载均衡客户端。首先在工程配置文件中,将配置项 feign.httpclient.enabled 的值,设置为 false 。然后,在 HttpClientFeignLoadBalancedConfiguration 的 feignClient(…)方法内的某行打上断点,重新启动项目,注意观察会发现,整个启动过程中,断点没有被命中。

SpringCloud Open feign 使用okhttp 优化详解

SpringCloud Open feign 使用okhttp 优化详解

SpringCloud Open feign 使用okhttp 优化详解

SpringCloud Open feign 使用okhttp 优化详解

SpringCloud Open feign 使用okhttp 优化详解

SpringCloud Open feign 使用okhttp 优化详解

SpringCloud Open feign 使用okhttp 优化详解

SpringCloud Open feign 使用okhttp 优化详解

SpringCloud Open feign 使用okhttp 优化详解