且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在HttpsUrlConnectionMessageSender中使用连接池

更新时间:2023-01-12 12:33:50

客户端的默认连接池为20,每个请求的默认连接池为2.

The client has default connection pool of 20 and default connection pool per request 2.

但是您可以这样覆盖它:

But you can overwrite it like this:

public HttpComponentsMessageSender httpComponentsMessageSender(Integer readTimeout, Integer connectionTimeOut,
            Integer throttlingLimit) {
    HttpComponentsMessageSender sender = new HttpComponentsMessageSender();
    sender.setReadTimeout(readTimeout);
    sender.setConnectionTimeout(connectionTimeOut);
    PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager();
    CloseableHttpClient poolingHttpSoapClient = HttpClients.custom().setConnectionManager(connManager)
            .addInterceptorFirst(new RemoveSoapHeadersInterceptor()).setMaxConnPerRoute(throttlingLimit)
            .setMaxConnTotal(throttlingLimit + 1).build();
    sender.setHttpClient(poolingHttpSoapClient);
    return sender;
}