簡體   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