OpenFeign使用HttpClient后,Feign响应GZIP压缩失效,求解

心勤则明 2023-12-01 12:04:50

依赖版本

<properties>
  <java.version>8</java.version>
  <spring-boot-version>2.6.11</spring-boot-version>
  <spirng-cloud-version>2021.0.4</spirng-cloud-version>
  <spring-cloud-alibaba-version>2021.0.4.0</spring-cloud-alibaba-version>
</properties>

feign客户端依赖

<!--OpenFeign声明式HTTP客户端-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <!--使用feign-httpclient依赖会导致feign原本的响应压缩失效-->
        <dependency>
            <groupId>io.github.openfeign</groupId>
            <artifactId>feign-httpclient</artifactId>
        </dependency>

Feign客户端配置

feign:
  sentinel:
    enabled: false
  httpclient:
    enabled: true
    # 最大连接数
    maxConnections: 200
    # 每个路径的最大连接数
    maxConnectionsPerRoute: 50
  # 数据压缩
  compression:
    request:
      enabled: true
      min-request-size: 1
      mime-types:
        - image/png
        - image/jpeg
        - image/jpg
        - text/html
        - application/javascript
        - text/css
        - application/octet-stream
        - application/json
        - text/plain
    response:
      enabled: true

Feign服务端配置

server:
  port: 8085
  compression:
    enabled: true
    mime-types:
      - image/png
      - image/jpeg
      - image/jpg
      - text/html
      - application/javascript
      - text/css
      - application/octet-stream
      - application/json
      - text/plain
    min-response-size: 10B

移除“feign-httpclient”依赖后,响应压缩正常,如下图:

未移除 “feign-httpclient”依赖,响应压缩失效,如下图:

求大佬帮忙啊!!! 

...全文
1040 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
T0BSky 2024-05-22
  • 打赏
  • 举报
回复 1

您好!从您的描述和配置中看,您已经正确地配置了Feign的压缩功能。但是,由于您使用了feign-httpclient依赖,可能存在一些与Apache HttpClient集成的问题。请尝试以下步骤解决问题:

  1. 更新依赖版本:检查是否有最新版本的feign-httpclient可用,并尝试将其升级到最新版本,以确保修复了可能存在的问题。

  2. 排除冲突的依赖:在您的feign-httpclient依赖中排除掉与Apache HttpClient相关的冲突依赖,以确保Feign与HttpClient的集成正确。

  3. 排查配置:确保feign.httpclient.enabled属性已正确设置为true

  4. 检查压缩设置:检查Feign客户端和服务端的压缩配置是否匹配,并且确保MIME类型和最小响应大小设置正确。

如果以上步骤都不能解决问题,建议尝试使用其他HTTP客户端,如feign-okhttp,看看是否能够正常工作。

51,411

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧