6

如何@feignclient在 spring 配置中设置自定义最大连接池大小,

@FeignClient(name = "content-cms", configuration = ContentCmsServiceFeignConfig.class)
public interface FeignService {

@RequestMapping(value = "/test/", method = RequestMethod.GET)
String getSample(@RequestParam("token") String token, @RequestParam("cid") String cid,
        @RequestParam("ratio") String ratio, @RequestParam("s") String source);

}
4

1 回答 1

11

您可以在使用的特定Client实现中配置连接数。Feign 具有开箱即用的支持Apache HttpOkHttp并且Ribbon. 使用Spring Cloud Open Feign时,默认客户端基于您在类路径中的内容。

这是一个使用 的示例Apache Http,您可以使用所需的设置配置自己的CloseableHttpClientbean。

@Configuration
public class HttpClientConfiguration {
    @Bean
    public CloseableHttpClient httpClient() {
       return HttpClients.custom()
                  .maxConnectionsPerRoute(200)
                  .maxConnections(200)
                  .build()
    }
} 

如果您使用的是 Spring Boot,您也可以配置任何feign.httpclient.*属性。

feign:
   httpclient:
       maxConnections: 200
       maxConnectionsPerRoute: 200

您可以在 Spring Cloud OpenFeign 文档中找到更多信息:Overriding Feign Defaults

于 2018-04-25T17:37:08.033 回答