【发布时间】:2021-08-30 20:36:12
【问题描述】:
在带有 PoolingHttpClientConnectionManager 的 Apache HttpClient 中,Keep-Alive strategy 是否会更改活动连接在从连接池中删除之前保持活动的时间量?还是只会关闭空闲连接?
例如,如果我将 Keep-Alive 策略设置为每个请求返回 5 秒,并且我使用相同的连接每 2 秒访问一次 URL/路由,我的 keep-alive 策略是否会导致此连接离开游泳池?还是会留在池中,因为连接没有空闲?
【问题讨论】:
-
你没有选择keep-alive作为客户端,是服务器设置了keep-alive标头,Apache HTTP Client的默认实现看这个标头值。
-
@GaëlJ 使用 Apache HttpClient,如果服务器没有向您发送响应,您可以在服务器响应上设置默认的 Keep-Alive 标头。此外,Keep-Alive 标头似乎确实会影响活动和空闲连接(请参阅下面的答案以了解我的调查原因)。
标签: java apache-httpclient-4.x