Feing的性能优化

  • 说明

    • Feign底层的客户端实现:
      1. URLConnection:默认实现,不支持连接池
      2. Apache HttpClient:支持连接池
      3. OKHttp:支持连接池
    • 因此优化Feign的性能主要包括:
      1. 使用连接池代替默认的URLConnection
      2. 日志级别,最好使用basic或none
  • 连接池配置

    • Feign添加HttpClient的支持:

      引入依赖

      1
      2
      3
      4
      5
      <!--httpClient的依赖 -->
      <dependency>
      <groupId>io.github.openfeign</groupId>
      <artifactId>feign-httpclient</artifactId>
      </dependency>

      配置连接池

      1
      2
      3
      4
      5
      6
      7
      8
      9
      feign:
      client:
      config:
      default: # default全局的配置
      loggerLevel: BASIC # 日志级别,BASIC就是基本的请求和响应信息
      httpclient:
      enabled: true # 开启feign对HttpClient的支持
      max-connections: 200 # 最大的连接数
      max-connections-per-route: 50 # 每个路径的最大连接数

Feign的最佳实践

  • 将FeignClient抽取为独立模块,并且把接口有关的POJO、默认的Feign配置都放到这个模块中,提供给所有消费者使用