如何解决如何重用与 PoolingHttpClientConnectionManager 的连接?
我目前正在将 PoolingHttpClientConnectionManager 用于我的一项 Java Spring 启动服务。我观察到连接没有被重用,并且每次都关闭。
一旦连接数达到最大池大小,连接就会关闭。有没有办法让我们避免为每个请求关闭连接/SSL 握手?
注意:我们确实有客户端和服务器发送的 keep-alive 标头。
这是配置的样子:
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(SSLContext.getDefault());
Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory> create()
.register("https",sslsf)
.register("http",new PlainConnectionSocketFactory())
.build();
PoolingHttpClientConnectionManager poolingManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry);
poolingManager.setMaxTotal(150);
poolingManager.setDefaultMaxPerRoute(50);
poolingManager.setValidateAfterInactivity(1000);
CloseableHttpClient client = HttpClientBuilder.create()
.setSSLSocketFactory(sslsf)
.setConnectionManager(poolingManager)
.setSSLContext(SSLContext.getDefault())
.setConnetionManagerShared(true)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。