Feign底层的客户端实现有三种模式
1)URLConnection:默认实现,不支持连接池;(Feign发送http请求时,默认使用的客户端)
2)Apache HttpClient :支持连接池;
3)OKHttp : 支持连接池;
我们知道,连接池可以减少连接创建和销毁的性能损耗;连接每次创建都需要三次握手,断开时需要做四次挥手,其实是比较浪费性能的,浪费资源的。所以,我们希望减少这类操作,那怎么办呢?所以需要使用连接池。
因此优化Feign的性能主要包括
1)使用连接池代替默认的URLConnection
2)日志级别虽然可以用full,但是最好使用basic或none
(开日志是需要消耗性能的,不开日志的情况下日志会提升很多)
Feign的性能优化-连接池配置
Feign的性能优化-连接池配置,如何配置呢?配置步骤是什么呢?我们这里用Apache HttpClient为例,替换Feign底层默认的客户端 URLConnection;
1、Feign添加HttpClient的支持:引入依赖
<!--httpClient的依赖-->
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
<version>10.10.0</version>
</dependency>
2、配置连接池
feign:
client:
config:
default: #这里default就是全局配置,如果是写服务名称,则是针对某个微服务的配置
loggerLevel: FULL #日志级别
httpclient:
enabled: true #开启Feign对httpClient的支持
max-connections: 200 #最大连接数
max-connections-per-route: 50 #每个路径的最大连接数
总结