I am using Apache HttpClient in one of my projects. I also use PoolingHttpClientConnectionManager along with my HttpClient.
I am confused what these properties mean. I tried to look at the documentation in the code, but I do not see any documentation around these variables, so I could not understand.
- setMaxTotal
- setDefaultMaxPerRoute
- setConnectTimeout
- setSocketTimeout
- setConnectionRequestTimeout
- setStaleConnectionCheckEnabled
The following is an example of using my code:
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(5 * 1000).setSocketTimeout(5 * 1000) .setStaleConnectionCheckEnabled(false).build(); PoolingHttpClientConnectionManager poolingHttpClientConnectionManager = new PoolingHttpClientConnectionManager(); poolingHttpClientConnectionManager.setMaxTotal(200); poolingHttpClientConnectionManager.setDefaultMaxPerRoute(20); CloseableHttpClient httpClientBuilder = HttpClientBuilder.create() .setConnectionManager(poolingHttpClientConnectionManager).setDefaultRequestConfig(requestConfig) .build();
Can someone explain these properties to me so that I can understand and decide what values I should put there. Also, are there any other properties that I should use separately, as shown above, to improve performance?
I am using http-client 4.3.1
john
source share