09-Feign-性能优化
1.Feign的性能优化:
Feign底层的客户端实现:
1.URLConnection:默认实现,不支持连接池
2.Apache HttpClient :支持连接池
3.OKHttp:支持连接池
解释:
Feign是一个声明式客户端,他只是帮助我们把我们的什么变成Http请求,最终发http请求时还是会用到别的一些客户端,
它默认用的是URLConnectio这种。这种是我们JDK里面自带的一种,它的实现性能是不太好的,而且他也不支持连接池。
建立连接池之后可以减少连接的创建和销毁的性能损耗。因为连接每次创建都要三次握手、断开时要四次挥手。
而URLConnectio不支持连接池,所以推荐使用下面两种Apache HttpClient和OKHttp。
因此优化Feign的性能主要包括:
使用连接池代替默认的URLConnection
日志级别,最好用basic或none
2.Feign的性能优化-连接池配置
Feign添加HttpClient的支持:
引入依赖:
// httpClient的依赖
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
</dependency>
配置连接池:
feign:
client:
config:
default: // default全局的配置
loggerLevel: FULL BASIC // 日志级别,BASIC就是基本的请求和响应信息
httpclient:
enabled: true // 支持HttpClient的开关
max-connections: 200 // 最大连接数
max-connections-per-route: 50 // 单个路径的最大连接数
3.总结:
Feign的优化:
1.日志级别尽量用basic
2.使用HttpClient或OKHttp代替URLConnection
引入feign-httpClient依赖
配置文件开启httpClient功能,设置连接池参数