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

问题描述 投票:2回答:1

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

@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);

}
java spring-cloud spring-cloud-netflix netflix-feign feign
1个回答
4
投票

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

以下是使用Apache Http的示例,您可以使用所需的设置配置自己的CloseableHttpClient bean。

@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 Documentation: Overriding Feign Defaults找到更多信息

© www.soinside.com 2019 - 2024. All rights reserved.