前言
HttpClient 一般使用 PoolingHttpClientConnectionManager 实现池化技术,而 BasicHttpClientConnectionManager是单线程的,没有使用到池化技术。池化技术中两个比较关键的参数就是 maxTotal 和 maxPerRoute。
结论
maxTotal 是设置同时间正在使用的最大连接数,默认值是20。
maxPerRoute 是设置一个 host(ip或域名):port 同时间正在使用的最大连接数,默认值是2。
说明
maxTotal 比较好理解,不展开说明。
maxPerRoute 我之前一直有疑惑,其实就是设置针对某个 host:port 设置最大连接数。
比如一个应用 maxPerRoute 设置的是 20,这个应用使用httpclinet要往 www.google.com 、127.0.0.1:9843两个地址发送http请求,那同时往 www.google.com 或者 127.0.0.1:9843 发送请求的连接数最大只会有20个。