【问题标题】:How to set custom max connection pool size in @feignclient configuration in springspring 如何在@feignclient 配置中设置自定义最大连接池大小
【发布时间】:2018-09-21 14:11:53
【问题描述】:

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

}

【问题讨论】:

  • 你在说什么线程池?
  • 我说的是连接池,默认情况下我只能看到200个连接池大小。我可以增加那个吗。有什么办法
  • @robp 你能详细说明一下吗,我可以看到你在查询中使用了相同的:stackoverflow.com/questions/36153138/…

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


【解决方案1】:

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

【讨论】:

  • 为了用一个让我苦苦挣扎了一整天的细节来完成这个答案:您需要在 Feign 和 Apache HttpClient 之间添加一座桥梁。例如:<dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-httpclient</artifactId> </dependency>
  • 链接已损坏。也许是这个? cloud.spring.io/spring-cloud-netflix/multi/…
猜你喜欢
  • 1970-01-01
  • 2012-04-30
  • 1970-01-01
  • 1970-01-01
  • 2020-09-13
  • 2014-10-23
  • 2011-08-13
  • 2017-08-25
  • 2020-04-01
相关资源
最近更新 更多