我们可以通过查看Feign的底层源码看到,Feign的默认使用的URLConnection去发送请求的,他是没有连接池的。但是Feign底层除了使用URLConnection发送请求以外,还支持使用Apache的HTTPClient以及OKHTTP去发送请求,而Apache的HTTPClient以及OKHTTP都是支持连接池的
性能优化1----配置连接池
配置连接池之后,性能大约能提升15%左右
使用Apache的HTTPClient为例,来为Feign配置连接池
第一步:加依赖
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
<version>10.1.0</version>
</dependency>
第二步:添加配置
feign:
httpclient:
# 让feign使用Apache HTTPClient做请求,而不是默认的urlConnection
enabled: true
# feign最大连接数
max-connections: 200
# feign单个路径的最大连接数
max-connections-per-route: 50
使用Apache的HTTPClient为例,来为Feign配置连接池
第一步:加依赖
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-okhttp</artifactId>
<version>10.1.0</version>
</dependency>
第二步:添加配置
feign:
httpclient:
# feign最大连接数
max-connections: 200
# feign单个路径的最大连接数
max-connections-per-route: 50
okhttp:
# 让feign使用Apache okhttp做请求,而不是默认的urlConnection
enabled: true
性能优化2----设置合理的日志级别
在生产环境,需要打印feign的日志,使用basic级别就ok了,强烈不建议使用full。打印日志太多,消耗feign的性能。
设置日志级别参考文章Feign声明式HTTP客户端
网友评论