写点什么

feign client 客户端的自动装配

作者:周杰伦本人
  • 2022-10-20
    贵州
  • 本文字数:761 字

    阅读完需:约 1 分钟

feign client 客户端的自动装配

我们在之前的文章中说了 Feign 的客户端有 httpclient,OkHttpClient,Client.Default,下面就这三个客户端的自动装配进行分析一下。

FeignRibbonClientAutoConfiguration

FeignRibbonClientAutoConfiguration 这个类配置 FeignClient,它具有负载均衡能力


当 ILoadBalancer 类和 Feign 类存在的时候,FeignRibbonClientAutoConfiguration 可以自动配置,同时导入 HttpClientFeignLoadBalancedConfiguration、OkHttpFeignLoadBalancedConfiguration、DefaultFeignLoadBalancedConfiguration 三个客户端的负载均衡配置类

HttpClientFeignLoadBalancedConfiguration

从 HttpClientFeignLoadBalancedConfiguration 的类上的注解我们可以看到


存在 ApacheHttpClient 类和 feign.httpclient.enabled=true 可以实现 httpclient 的自动装配

DefaultFeignLoadBalancedConfiguration

从源码中我们可以看到默认自动装配是这个,从 Client.Default 看出实例使用 HttpURLConnection 来发起远程调用请求。

OkHttpFeignLoadBalancedConfiguration

通过 OkHttpFeignLoadBalancedConfiguration 类上的注解,可以看到需要满足的条件的是存在 OkHttpClient 类,并且 feign.okhttp.enabled=true,这样自动装配才会生效,实例内部通过 OKHttp3 完成 http 请求。

总结

本篇文章主要对 Feign 的三个客户端的自动配置类进行了源码层面的分析,对应的类的自动装配类分别是 OkHttpFeignLoadBalancedConfiguration、DefaultFeignLoadBalancedConfiguration、HttpClientFeignLoadBalancedConfiguration,根据自动装配类的类上的注解,我们可以看出要想让哪个自动装配类生效,需要我们配置的条件是什么,以及需要引入的包有哪些,除了这个三个客户端外还有一个客户端是 LoadBalancerFeignClient,它的内部是通过 ribbon 的负载均衡调度各个客户端完成 Http 请求的发送,而不是真正的客户端类。

发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2020-02-29 加入

公众号《盼盼小课堂》,多平台优质博主

评论

发布
暂无评论
feign client客户端的自动装配_10月月更_周杰伦本人_InfoQ写作社区