通过 RestTemplateBuilder 的方式生成 RestTemplate
@Bean(name = "template")
RestTemplate template(RestTemplateBuilder restTemplateBuilder) {
return restTemplateBuilder
//单位s, 设置连接时间,避免线程过多被阻塞挂起
.setConnectTimeout(Duration.ofSeconds(1))
.setReadTimeout(Duration.ofSeconds(1))
.additionalMessageConverters(new MyMappingJackson2HttpMessageConverter())
.requestFactory(() -> {
HttpComponentsClientHttpRequestFactory clientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory();
// 连接池
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
//设置HTTP连接管理器
PoolingHttpClientConnectionManager poolingConnectionManager = new PoolingHttpClientConnectionManager();
poolingConnectionManager.setMaxTotal(500); // 连接池最大连接数