我正在使用以下配置来创建RestTemplate
bean。
@Bean
@Primary
public RestTemplate restTemplate(RestTemplateBuilder builder) {
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
return builder.requestFactory(() -> new BufferingClientHttpRequestFactory(factory))
.build();
}
问题:默认情况下,HttpClient
的实例如下:
org.apache.http.impl.client.HttpClientBuilder:
String s = System.getProperty("http.keepAlive", "true");
if ("true".equalsIgnoreCase(s)) {
s = System.getProperty("http.maxConnections", "5");
int max = Integer.parseInt(s);
poolingmgr.setDefaultMaxPerRoute(max);
poolingmgr.setMaxTotal(2 * max);
}
因此,默认情况下,该其余模板上最多有10个并发url连接。
问题:使用spring-boot
时,如何最好地配置最大总数?我没有找到任何application.properties
条目来将其设置为自定义值。
侧问:每条路线是什么意思?是一条路线localhost:8080/myfirst
,另一条路线是localhost:8080/mysnd
?还是两条路线都localhost:8080
?
答案 0 :(得分:0)
对不起,我误会了您的问题。
这很简单:您可以在application.properties
中创建自己的配置。
例如:
## Connection pool max size to appache http client
myProjectId.http.maxConnections=100
然后在您的Bean / Service /其他内容中,您可以通过简单的操作将其注入
@Bean
public class HttpClient {
@Value( "${myProjectId.http.maxConnections}" )
private int maxConnections;
// some code below
}