配置 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 这些参数设置将在很大程度上取决于服务器负载和网络延迟。 如果您的客户端将部署在请求多个服务器的特定网络上,您可以测量这些超时并确定没有服务器限制和负载的连接数。