- Feign底层发起http请求时,默认使用URLConnection发起http请求,不支持连接池操作,那么为了提高Feign的性能,可以采用的手段是使用连接池代替默认的URLConnection
- 支持连接池的http客户端
- Apache HttpClient
- OKHttp
- 支持连接池的http客户端
- 本示例采用的是Apache HttpClient进行连接池集成
- 首先在maven的pom文件中添加feign-httpclient依赖
-
<!-- httpClient的依赖 --> <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-httpclient</artifactId> </dependency>
-
- 在application.yml文件中添加连接池配置信息
-
feign: client: config: # 指的是@FeignClient中的value设定的值,也就是对应的微服务名称 nacos-feign-user-service: # 日志级别 loggerLevel: NONE httpclient: # 开启feign对HttpClient的支持 enabled: true # 最大的连接数,根据实际压测数据调整 max-connections: 256 # 每个路径的最大连接数,根据实际压测数据调整 max-connections-per-route: 64
- 相关完整配置官网详细信息
- Common application properties (spring.io)
-
- 首先在maven的pom文件中添加feign-httpclient依赖
- 如何验证连接池已经生效
- 找到源码类FeignClientFactoryBean,在loadBalance的方法内打断点调试
- 然后通过debug模式启动微服务,断点出现之后向下执行可以看出client为ApacheHttpClient即可说明已经生效
- 找到源码类FeignClientFactoryBean,在loadBalance的方法内打断点调试