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 要好些。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步