使用连接池对于feign的远程调用的优化

发布时间:2023年12月17日
  1. Feign底层发起http请求时,默认使用URLConnection发起http请求,不支持连接池操作,那么为了提高Feign的性能,可以采用的手段是使用连接池代替默认的URLConnection
    1. 支持连接池的http客户端
      1. Apache HttpClient
      2. OKHttp
  2. 本示例采用的是Apache HttpClient进行连接池集成
    1. 首先在maven的pom文件中添加feign-httpclient依赖
      1.         <!-- httpClient的依赖 -->
                <dependency>
                    <groupId>io.github.openfeign</groupId>
                    <artifactId>feign-httpclient</artifactId>
                </dependency>
    2. 在application.yml文件中添加连接池配置信息
      1. feign:
          client:
            config:
              # 指的是@FeignClient中的value设定的值,也就是对应的微服务名称
              nacos-feign-user-service:
                # 日志级别
                loggerLevel: NONE
          httpclient:
            # 开启feign对HttpClient的支持
            enabled: true
            # 最大的连接数,根据实际压测数据调整
            max-connections: 256
            # 每个路径的最大连接数,根据实际压测数据调整
            max-connections-per-route: 64
        
      2. 相关完整配置官网详细信息
        1. Common application properties (spring.io)
  3. 如何验证连接池已经生效
    1. 找到源码类FeignClientFactoryBean,在loadBalance的方法内打断点调试
    2. 然后通过debug模式启动微服务,断点出现之后向下执行可以看出client为ApacheHttpClient即可说明已经生效
文章来源:https://blog.csdn.net/weixin_41926152/article/details/135035203
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。