wks há 2 anos atrás
pai
commit
fa787be7c1

+ 21 - 5
src/main/java/com/ydtech/config/resttemplate/RestTemplateConfig.java

@@ -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()