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