|
|
@@ -21,6 +21,22 @@ import java.util.Collections;
|
|
|
|
|
|
@Configuration
|
|
|
public class RestTemplateConfig {
|
|
|
+
|
|
|
+ // 连接池最大连接数
|
|
|
+ private static final int MAX_TOTAL = 3200;
|
|
|
+
|
|
|
+ // 默认每条路线的最大值
|
|
|
+ private static final int DEFAULT_MAX_PER_ROUTE = 40;
|
|
|
+
|
|
|
+ // 返回数据的超时时间
|
|
|
+ private static final int SOCKET_TIMEOUT = 60 * 1000;
|
|
|
+
|
|
|
+ // 连接上服务器的超时时间
|
|
|
+ private static final int CONNECT_TIMEOUT = 3 * 1000;
|
|
|
+
|
|
|
+ // 从连接池中获取连接的超时时间
|
|
|
+ private static final int CONNECTION_REQUEST_TIMEOUT = 1000;
|
|
|
+
|
|
|
@Bean
|
|
|
public RestTemplate restTemplate() {
|
|
|
RestTemplate restTemplate = new RestTemplate(httpRequestFactory());
|
|
|
@@ -40,14 +56,14 @@ public class RestTemplateConfig {
|
|
|
PlainConnectionSocketFactory.getSocketFactory()).register("https", SSLConnectionSocketFactory.getSocketFactory()).build();
|
|
|
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(registry);
|
|
|
//设置整个连接池最大连接数
|
|
|
- connectionManager.setMaxTotal(3000);
|
|
|
+ connectionManager.setMaxTotal(MAX_TOTAL);
|
|
|
|
|
|
//路由是对maxTotal的细分
|
|
|
- connectionManager.setDefaultMaxPerRoute(100);
|
|
|
+ connectionManager.setDefaultMaxPerRoute(DEFAULT_MAX_PER_ROUTE);
|
|
|
RequestConfig requestConfig = RequestConfig.custom()
|
|
|
- .setSocketTimeout(60000) //返回数据的超时时间
|
|
|
- .setConnectTimeout(3000) //连接上服务器的超时时间
|
|
|
- .setConnectionRequestTimeout(1000) //从连接池中获取连接的超时时间
|
|
|
+ .setSocketTimeout(SOCKET_TIMEOUT) //返回数据的超时时间
|
|
|
+ .setConnectTimeout(CONNECT_TIMEOUT) //连接上服务器的超时时间
|
|
|
+ .setConnectionRequestTimeout(CONNECTION_REQUEST_TIMEOUT) //从连接池中获取连接的超时时间
|
|
|
.build();
|
|
|
|
|
|
return HttpClientBuilder.create()
|