Zuul1压测无法释放底层httpclient的连接池

Posted

技术标签:

【中文标题】Zuul1压测无法释放底层httpclient的连接池【英文标题】:Zuul1 can't release the underlying httpclient's connection pool in pressure test 【发布时间】:2020-12-15 02:08:53 【问题描述】:

Zuul1的版本是1.3.1

我用jmeter通过zuul测试一个服务,我设置线程数是1000,循环数是无限的。过了一会儿,zuul 的断路器打开了,但它再也无法访问了。我发现,原因是底层httpclient的租用连接已经满了连接池,但正常应该超时后释放。我想知道为什么租用的连接不能释放?

我的zuul1的配置是:

ribbon:
  ReadTimeout: 2000
  ConnectTimeout: 1000
  MaxTotalConnections: 200
  MaxConnectionsPerHost: 50

zuul:
  ribbonIsolationStrategy: THREAD

hystrix:
  command:
    default:
      execution:
        timeout:
          enabled: true
        isolation:
          thread:
            timeoutInMilliseconds: 8000

【问题讨论】:

【参考方案1】:

我得到了答案:https://github.com/spring-cloud/spring-cloud-netflix/issues/2831

是zuul的bug。

【讨论】:

以上是关于Zuul1压测无法释放底层httpclient的连接池的主要内容,如果未能解决你的问题,请参考以下文章

总结httpclient资源释放和连接复用

压测中出现的错误

HttpClient 释放连接

释放 HttpClient 4.1.x 的连接以使用一个 HttpClient 实例顺序执行

HttpClient 4.0.1 - 如何释放连接? [复制]

由 HttpClientFactory 创建的 HttpClient 实例是不是应该被释放?