配置 RequestConfig 和 PoolingHttpClientConnectionManager
Configuring RequestConfig and PoolingHttpClientConnectionManager
我正在使用 apache http 客户端实现 rest 客户端。
所以我用 RequestConfig 配置它:
<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>
与
<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>
我的问题是 - 如何为超时、最大连接数等选择最佳参数?
有没有攻略因为我现在正在做的 - 只是随机选取那些参数。我认为这些值应该合理设置。你能解释一下如何选择它们或指出好的文章吗?也许有一些工具可以对此进行分析?
这 2 个问题是很好的起点(大多数浏览器的默认设置是什么): and
这些参数设置将在很大程度上取决于服务器负载和网络延迟。
如果您的客户端将部署在请求多个服务器的特定网络上,您可以测量这些超时并确定没有服务器限制和负载的连接数。
我正在使用 apache http 客户端实现 rest 客户端。 所以我用 RequestConfig 配置它:
<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>
与
<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>
我的问题是 - 如何为超时、最大连接数等选择最佳参数? 有没有攻略因为我现在正在做的 - 只是随机选取那些参数。我认为这些值应该合理设置。你能解释一下如何选择它们或指出好的文章吗?也许有一些工具可以对此进行分析?
这 2 个问题是很好的起点(大多数浏览器的默认设置是什么): and 这些参数设置将在很大程度上取决于服务器负载和网络延迟。 如果您的客户端将部署在请求多个服务器的特定网络上,您可以测量这些超时并确定没有服务器限制和负载的连接数。