SpringRestTemplate-调整连接数

This commit is contained in:
khalil
2025-05-12 12:26:46 +08:00
parent f813c00c12
commit b7cf941d2a

View File

@@ -2,12 +2,7 @@ package com.accompany.core.config;
import org.apache.http.HeaderElement;
import org.apache.http.HeaderElementIterator;
import org.apache.http.config.Registry;
import org.apache.http.config.RegistryBuilder;
import org.apache.http.conn.ConnectionKeepAliveStrategy;
import org.apache.http.conn.socket.ConnectionSocketFactory;
import org.apache.http.conn.socket.PlainConnectionSocketFactory;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
@@ -27,12 +22,8 @@ public class SpringRestTemplateConfig {
@Bean(name = "httpClientConnectionManager")
public PoolingHttpClientConnectionManager getHttpClientConnectionManager(){
Registry<ConnectionSocketFactory> registry = RegistryBuilder.<ConnectionSocketFactory>create()
.register("http", PlainConnectionSocketFactory.getSocketFactory())
.register("https", SSLConnectionSocketFactory.getSocketFactory())
.build();
PoolingHttpClientConnectionManager httpClientConnectionManager = new PoolingHttpClientConnectionManager(registry);
PoolingHttpClientConnectionManager httpClientConnectionManager = new PoolingHttpClientConnectionManager();
//最大连接数
httpClientConnectionManager.setMaxTotal(40);
//并发数
@@ -48,9 +39,7 @@ public class SpringRestTemplateConfig {
//HttpClientBuilder中的构造方法被protected修饰所以这里不能直接使用new来实例化一个HttpClientBuilder可以使用HttpClientBuilder提供的静态方法create()来获取HttpClientBuilder对象
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
httpClientBuilder.setConnectionManager(httpClientConnectionManager);
httpClientBuilder.disableAutomaticRetries();
// 另外httpClientBuilder 可以设置长连接策略dns解析器代理拦截器以及UserAgent等等。可根据业务需要进行实现
httpClientBuilder.setKeepAliveStrategy(connectionKeepAliveStrategy());
@@ -78,7 +67,7 @@ public class SpringRestTemplateConfig {
}
}
}
return 6000L;
return 10000L;
};
}
@@ -100,8 +89,8 @@ public class SpringRestTemplateConfig {
@Bean
public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setConnectTimeout(5000); // 设置连接超时时间(毫秒)
factory.setReadTimeout(5000); // 设置读取超时时间(毫秒)
factory.setConnectTimeout(3000); // 设置连接超时时间(毫秒)
factory.setReadTimeout(3000); // 设置读取超时时间(毫秒)
return factory;
}
}