只是想知道开箱即用的 RestTemplate 是使用连接池还是每次都建立一个新连接?
最佳答案
是的,Spring RestTemplateBuilder
使用 Apache HttpClient 进行池化 (usage)。
RestTemplateBuilder
创建 HttpComponentsClientHttpRequestFactory
并使用 HttpClientBuilder
。
HttpClientBuilder
,默认情况下,将每个路由(主机)的池大小设置为 5,将总池大小设置为 10 (source):
s = System.getProperty("http.maxConnections", "5");
int max = Integer.parseInt(s);
poolingmgr.setDefaultMaxPerRoute(max);
poolingmgr.setMaxTotal(2 * max);
要检查连接池日志记录设置日志记录级别如下:
org.apache.http.impl.conn.PoolingHttpClientConnectionManager=TRACE
关于Springs RestTemplate 默认连接池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44188847/