perf:http连接池优化
This commit is contained in:
@@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user