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

标签 java spring-cloud spring-cloud-netflix netflix-feign feign

如何在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);

}

最佳答案

您可以在使用的特定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 中找到更多信息

关于java - 如何在 spring @feignclient 配置中设置自定义最大连接池大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49779354/

相关文章:

java - 如何创建需要参数的对象数组

spring - 如何在Spring Cloud Config中使用自定义ssh key 位置

java - 在 Zuul 预过滤器中修改请求正文不起作用

spring-boot - Spring Cloud 网关: How to create a filter

java - 致命异常 : Firebase-Messaging-Intent-Handle Process: com. google.android.youtube 在 pre launch google play console 上

java - 使用 BufferedReader 在 java 中读取终端命令的输出

java - 从 Spring Cloud Config Server 获取配置时 Spring 配置文件排序不正确

spring-cloud - Spring Cloud config feign fallback(CircuitBreaker) 规则

java - 解析运行日志

spring-boot 指标与 spring-cloud 指标