PoolingHttpClientConnectionManager 和 keep-alive 设置

PoolingHttpClientConnectionManager and keep-alive setting

我有一个带有 http 请求池的性能关键型应用程序。我的应用程序服务是突发处理批处理文件。 PoolingHttpClientConnectionManager 是否为多个请求重新使用连接? 如果是,我如何计算最佳保持活动时间?我的 http 请求响应时间平均为 25 毫秒。

是的,它将为多个请求重用连接。请注意,它将每个路由的最大连接数合并到一起,默认值为 2,因此您几乎肯定会想要增加它,否则它将成为瓶颈!

计算最佳保持活动时间并非易事,因为它取决于很多因素。爆发的频率是多少,web前端或应用服务器支持的keep-alive时间等等。通常我会从 5-10 秒开始并进行测量。如果您知道爆发间隔为 8 秒,则瞄准稍微大一点的东西。如果突发间隔超过几分钟,保持连接存活那么长时间会出现问题,因为它们往往会超时(防火墙、服务器端关闭,...)。