Ich verwende Apache HttpClient in einem meiner Projekte. Ich verwende auch PoolingHttpClientConnectionManager
zusammen mit meinem HttpClient.Was bedeuten setDefaultMaxPerRoute und setMaxTotal in HttpClient?
Ich bin verwirrt, was diese Eigenschaften bedeuten. Ich habe versucht, Dokumentation im Code durchzugehen, aber ich sehe keine Dokumentation zu diesen Variablen, die ich nicht verstehen konnte.
- setMaxTotal
- setDefaultMaxPerRoute
- setConnectTimeout
- setSocketTimeout
- setConnectionRequestTimeout
- setStaleConnectionCheckEnabled
unten, wie ich in meinem Code verwende:
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();
Kann mir jemand diese Eigenschaften erklären, damit ich verstehen und entscheiden kann, welche Werte ich dort hineinlegen sollte. Gibt es noch andere Eigenschaften, die ich verwenden sollte, wie oben gezeigt, um eine bessere Leistung zu erzielen?
ich http-Client bin mit 4.3.1
Nun, wie kann das zu breit sein. Es sollte eine einzige Antwort geben für was ich frage? – john