繁体   English   中英

休息模板。 如何增加最大 tcp 个连接数?

[英]RestTemplate. How to increase max tcp connections?

我有 RestTemplate:

@Bean(name = "restTemplateBean")
public RestTemplate restTemplate(RestTemplateBuilder builder) {
    return builder
            .interceptors(new HttpRequestInterceptor())
            .uriTemplateHandler(new DefaultUriBuilderFactory((host + ":" + port)))
            .build();
}

当我多次调用 RestTemplate(例如发布请求)时,它最多创建 5 ~ 10 TCP 个连接。 如何增加 RestTemplate 创建的最大连接数?

您可以利用 Apache 的 HttpClient 的连接池。 使用 HttpClientBuilder 并增加maxConnPerRoutemaxConnTotal以达到您正在寻找的性能:

@Bean
public HttpClientBuilder httpClientBuilder() {
    return HttpClients.custom()
            .setMaxConnPerRoute(PER_ROUTE)
            .setMaxConnTotal(TOTAL);
}

@Bean
public RestTemplate restTemplate(HttpClientBuilder httpClientBuilder) {
    HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();

    requestFactory.setHttpClient(httpClientBuilder.build());
    
    return new RestTemplate(requestFactory);
}

maxConnPerRoute 限制单个 IP:port 可以建立的连接数,maxTotal 限制可以打开的总连接数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM