怎样配置Feign使用HttpClient

背景:

默认情况下,feign通过jdk中的HttpURLConnection向下游服务发起http请求(详见下图,源码详见feign.Client.Default),这种情况下,由于缺乏连接池的支持,在达到一定流量的后服务肯定会出问题
怎样配置Feign使用HttpClient_第1张图片

方案:

默认配置显然不足以支撑生产环境的服务,因此我们需要使用更加完备的方案。下面我们以HttpClient作为事例,来看一下怎样改变feign的底层http方案
1.pom文件增加feign-httpclient的依赖(请注意与feign-core的版本保持一致)

<dependency>
    <groupId>io.github.openfeigngroupId>
    <artifactId>feign-httpclientartifactId>
    <version>9.4.0version>
dependency>

2.application.properties配置激活

feign.httpclient.enabled=true

3.添加HttpClient配置(spring bean),请根据实际情况配置相关参数(例如最大连接数、超时时间等)
怎样配置Feign使用HttpClient_第2张图片
通过以上3步后,HttpClient即可作为feign的底层http方案,源码如下图(详见:org.springframework.cloud.netflix.feign.ribbon.FeignRibbonClientAutoConfiguration)
怎样配置Feign使用HttpClient_第3张图片

你可能感兴趣的:(Spring,Cloud,Spring)