feign性能配置调优

最近在使用 feign 时,有时会出现连接异常/阻塞的情况,对 feign 的配置进行了简单的调优。
替换了 feign 的 client, 并调整了连接数。

替换 feign的 http客户端:

Feign在默认情况下使用的是JDK原生的 URLConnection 发送HTTP请求,没有连接池。性能较差。
每次Http请求,需要三次握手去建立连接,完成后再断开连接。性能损耗是比较大的。
可以尝试替换成 httpclient 或者 okhttp,就会使用连接池,还可以调整最大连接数。

修改 application.yml :

feign:
#  okhttp:
#    enabled: true
  httpclient:
    enabled: true
    # 调整连接数,要谨慎些。如果连接数过大也会影响系统。如果不确定,也可以先不修改。
    max-connections: 200
    # 每个路径的最大连接数
    max-connections-per-route: 50
  # 超时时间,可以适当调整。超时时间过长,会导致连接长时间被占用,可用连接变少,影响性能。如果不确定,也可以先不修改。
  connectTimeout: 5000
  readTimeOut: 5000  

技术选型

如果对性能的要求比较高,在 服务调用上,优选 Rpc (比如 Dubbo) 。
Rpc 可以基于二进制协议进行传输,消息体比较简单,传输数据要小很多,性能比 基于 http的 feign 要好些。

posted on 2024-08-16 00:05  乐之者v  阅读(22)  评论(0编辑  收藏  举报

导航