Skip to content

Commit b019b40

Browse files
cursoragentram.dafale
andcommitted
Improve RestTemplate config with connection pooling and timeout settings
Co-authored-by: ram.dafale <[email protected]>
1 parent 8dfe922 commit b019b40

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

src/main/java/com/tennis/config/RestTemplateConfig.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
55
import org.apache.http.impl.client.CloseableHttpClient;
66
import org.apache.http.impl.client.HttpClients;
7+
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
8+
import org.apache.http.client.config.RequestConfig;
79
import org.apache.http.ssl.TrustStrategy;
810
import org.springframework.context.annotation.Bean;
911
import org.springframework.context.annotation.Configuration;
@@ -36,16 +38,27 @@ public RestTemplate restTemplate() throws Exception {
3638
null,
3739
NoopHostnameVerifier.INSTANCE);
3840

39-
// Create HTTP client with SSL configuration
41+
// Create connection manager with pooling
42+
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();
43+
connectionManager.setMaxTotal(100);
44+
connectionManager.setDefaultMaxPerRoute(20);
45+
46+
// Create request config with timeouts
47+
RequestConfig requestConfig = RequestConfig.custom()
48+
.setConnectTimeout(10000) // 10 seconds
49+
.setSocketTimeout(30000) // 30 seconds
50+
.build();
51+
52+
// Create HTTP client with SSL configuration and timeouts
4053
CloseableHttpClient httpClient = HttpClients.custom()
4154
.setSSLSocketFactory(csf)
55+
.setConnectionManager(connectionManager)
56+
.setDefaultRequestConfig(requestConfig)
4257
.build();
4358

4459
// Create request factory with custom HTTP client
4560
HttpComponentsClientHttpRequestFactory requestFactory =
4661
new HttpComponentsClientHttpRequestFactory(httpClient);
47-
requestFactory.setConnectTimeout(10000); // 10 seconds
48-
requestFactory.setReadTimeout(30000); // 30 seconds
4962

5063
return new RestTemplate(requestFactory);
5164
}

0 commit comments

Comments
 (0)