设置RestTemplate连接池数

1.restTemplate

@Autowired
    private TestImplProperties testImplProperties;

@Bean
    public RestTemplate testTemplate() {
        HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory();

        // 指定连接池配置,否则线上容易出现请求排队导致接口超时问题
        PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();
        connectionManager.setMaxTotal(300);
        //单host(可以理解为单域名)最大并发数,在依赖的外部系统数量较少时,可以配置和maxTotal一致。
        connectionManager.setDefaultMaxPerRoute(100);

        httpRequestFactory.setHttpClient(HttpClientBuilder.create().setConnectionManager(connectionManager).build());

        httpRequestFactory.setConnectionRequestTimeout(30 * 1000);
        httpRequestFactory.setConnectTimeout(30 * 1000);
        httpRequestFactory.setReadTimeout(30 * 3000);


        RestTemplate restTemplate = new RestTemplate(httpRequestFactory);
        restTemplate.getMessageConverters().add(new FastJsonHttpMessageConverter());
        QueryParamsUrlTemplateHandler handler = new QueryParamsUrlTemplateHandler();
        handler.setFileCenterProperties(testImplProperties);
        restTemplate.setUriTemplateHandler(handler);
        return restTemplate;
    }

2.TestImplProperties

@Data
@ConfigurationProperties(prefix = "xx.pe")
public class TestImplProperties implements TestProperties{
    private String xx;
    private String xx;
    private String xx;
}

3.TestProperties

public interface TestProperties{
    String getXx();
    String getXx();
    String getXx();
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容