OpenFeign中http client
如果不做特殊配置,OpenFeign默认使用JDK自带的HttpURLConnection发送HTTP请求,
由于默认HttpURLConnection没有连接池、性能和效率比较低。所以修改为Apache HttpClient 5。
总结为两步:
- 加依赖
- 改yml
具体操作请往下看
1.验证当前默认的HttpClient
利用调用端向服务端发送请求,服务端故意等待超时不响应,查看异常处理的HttpClient是谁。OpenFeign超时控制讲解文章请点击
调用端代码如下:
服务端响应代码如下,在超时控制设置中我已经设置了10秒钟:
可以看到异常处理是由HttpURLConnection进行处理的。验证成功!
2.修改为Apache HttpClient 5
2.1 引入Apache HttpClient 5的依赖
在pom文件中引入依赖,版本号可以根据自己的OpenFeign版本自行修改。
<!-- httpclient5-->
<dependency>
<groupId>org.apache.httpcomponents.client5</groupId>
<artifactId>httpclient5</artifactId>
<version>5.3</version>
</dependency>
<!-- feign-hc5-->
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-hc5</artifactId>
<version>13.1</version>
</dependency>
点击右上角重新加载依赖配置
2.2 在application.yml文件中配置参数
# Apache HttpClient5 配置开启
httpclient:
hc5:
enabled: true
到这一步已经设置成功了Apache HttpClient 5。
验证:重启调用端程序,继续上面的超时控制请求,查看异常处理的http客户端是否改变
可以看到已经修改成功!
后续可以自行设置 httpclient:hc5:enabled: false来关闭Apache HttpClient 5恢复为默认的HttpClient
即如下修改即可: