2016-03-29 23 views
0

Ich implementiere Rest-Client mit Apache HTTP-Client. So Konfiguration ich es mit RequestConfig:Konfigurieren von RequestConfig und PoolingHttpClientConnectionManager

<bean id="rest-client.requestConfigBuilder" class="org.apache.http.client.config.RequestConfig" 
     factory-method="custom"> 
    <property name="socketTimeout" value="${rest.readTimeout}"/> 
    <property name="connectTimeout" value="${rest.connectTimeout}"/> 
    <property name="connectionRequestTimeout" value="${rest.connectTimeout}"/> 
</bean> 

Und mit

<bean id="rest-client.connectionManager" class="org.apache.http.impl.conn.PoolingHttpClientConnectionManager"> 
    <property name="maxTotal" value="${rest.maxTotalConnections}"/> 
    <property name="defaultMaxPerRoute" value="${rest.maxTotalConnections}"/> 
</bean> 

Meine Frage ist - wie kann ich Pickup besten Parameter für Timeouts, maxTotal Verbindungen, etc? Gibt es einen Leitfaden? Weil, was ich jetzt mache - nur zufällig diese Parameter aufheben. Ich denke, diese Werte sollten vernünftig festgelegt werden. Kannst du mir bitte erklären, wie man sie auswählt oder auf gute Artikel zeigt? Und vielleicht gibt es einige Tools, um dies zu profilieren?

Antwort

1

diese 2 Fragen sind guter Ausgangspunkt (was in den meisten Browsern Standardeinstellung ist): Max parallel http connections in a browser? und Http client timeout and server timeout Diese Einstellparameter stark von der Latenz der Serverauslastung und Netzwerk abhängig werden. Wenn Ihr Client in einem bestimmten Netzwerk bereitgestellt wird, das mehrere Server anfordert, können Sie diese Zeitüberschreitungen messen und die Anzahl der Verbindungen ermitteln, die keine Serverlimits und -last aufweisen.