perf:http连接池优化

This commit is contained in:
Zhujx
2025-10-03 16:22:40 +08:00
parent 99e5beb69a
commit f1cc281b2f

View File

@@ -26,11 +26,15 @@ import java.util.concurrent.TimeUnit;
@Slf4j @Slf4j
public class HttpUtils { public class HttpUtils {
private static final int socketTimeOut = 5000; private static final int socketTimeOut = 10000;
private static final int connectTimeout = 10000; private static final int connectTimeout = 10000;
private static final int connectionRequestTimeout = 3000; private static final int connectionRequestTimeout = 3000;
private static final int defaultMaxPerRoute = 20; private static final int defaultMaxPerRoute = 100;
private static final int maxTotal = 100; private static final int maxTotal = 200;
private static final int LIVE_TIME = 5000;
private static final int ALIVE_STRATEGY = 30000;
private static final RequestConfig requestConfig = RequestConfig.custom() private static final RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(connectTimeout) .setConnectTimeout(connectTimeout)
@@ -48,12 +52,15 @@ public class HttpUtils {
connectionManager.setMaxTotal(maxTotal); connectionManager.setMaxTotal(maxTotal);
// 每个主机的最大连接数 // 每个主机的最大连接数
connectionManager.setDefaultMaxPerRoute(defaultMaxPerRoute); connectionManager.setDefaultMaxPerRoute(defaultMaxPerRoute);
connectionManager.setValidateAfterInactivity(LIVE_TIME);
httpClient = HttpClients.custom() httpClient = HttpClients.custom()
.setConnectionManager(connectionManager) .setConnectionManager(connectionManager)
.setDefaultRequestConfig(requestConfig) .setDefaultRequestConfig(requestConfig)
// 清理空闲连接 // 清理空闲连接
.evictIdleConnections(30, TimeUnit.SECONDS) .evictIdleConnections(30, TimeUnit.SECONDS)
.setKeepAliveStrategy((response, context) -> ALIVE_STRATEGY)
.build(); .build();
} }