OpenFeign修改HttpClient为Apache HttpClient 5

OpenFeign中http client

如果不做特殊配置,OpenFeign默认使用JDK自带的HttpURLConnection发送HTTP请求,

由于默认HttpURLConnection没有连接池、性能和效率比较低。所以修改为Apache HttpClient 5。

总结为两步:

  1. 加依赖
  2. 改yml

具体操作请往下看

1.验证当前默认的HttpClient

利用调用端向服务端发送请求,服务端故意等待超时不响应,查看异常处理的HttpClient是谁。OpenFeign超时控制讲解文章请点击

调用端代码如下:

服务端响应代码如下,在超时控制设置中我已经设置了10秒钟:

可以看到异常处理是由HttpURLConnection进行处理的。验证成功!

2.修改为Apache HttpClient 5

2.1 引入Apache HttpClient 5的依赖

在pom文件中引入依赖,版本号可以根据自己的OpenFeign版本自行修改。

xml 复制代码
		<!-- 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文件中配置参数

yaml 复制代码
      #  Apache HttpClient5 配置开启
      httpclient:
        hc5:
          enabled: true

到这一步已经设置成功了Apache HttpClient 5。

验证:重启调用端程序,继续上面的超时控制请求,查看异常处理的http客户端是否改变

可以看到已经修改成功!

后续可以自行设置 httpclient:hc5:enabled: false来关闭Apache HttpClient 5恢复为默认的HttpClient

即如下修改即可:

相关推荐
好家伙VCC13 小时前
# ARCore+ Kotlin 实战:打造沉浸式增强现实交互应用在
java·python·kotlin·ar·交互
zore_c13 小时前
【C++】C++——类的默认成员函数(构造、析构、拷贝构造函数)
java·c语言·c++·笔记·算法·排序算法
我登哥MVP13 小时前
【SpringMVC笔记】 - 4 - 三个域对象
java·spring boot·spring·servlet·tomcat·maven·intellij-idea
Seven9713 小时前
【从0到1构建一个ClaudeAgent】协作-Agent团队
java
郝学胜-神的一滴13 小时前
[系统设计] 新鲜事系统:写扩散与读扩散的实现与对比
java·设计模式·php·软件构建·需求分析·软件设计·系统设计
疯狂成瘾者14 小时前
LangChain4j ApacheTikaDocumentParser:多格式文档接入的统一入
java·langchain4j
SeaTunnel14 小时前
深度解析 Apache SeaTunnel 核心引擎三大技术创新:高可靠异步持久化与 CDC 架构优化实战
大数据·数据库·架构·apache·seatunnel
DolphinScheduler社区15 小时前
第 8 篇|Apache DolphinScheduler 与 Flink Spark 数据引擎的边界、协同与最佳实践
大数据·flink·spark·开源·apache·海豚调度·大数据工作流调度
庞轩px15 小时前
第三篇:泛型深度解析——类型擦除与通配符的奥秘
java·编译·泛型·类型擦除
HoneyMoose1 天前
Jenkins Cloudflare 部署提示错误
java·servlet·jenkins