我的应用程序必须handel客户端http请求,与某些API通信,并将数据返回给客户端。我为我的应用程序声明了一个全局RestTemplate,如下所示:
<bean id="httpClient" class="org.apache.commons.httpclient.HttpClient">
<constructor-arg index="0">
<bean id="httpClientParams" class="org.apache.commons.httpclient.params.HttpClientParams">
<property name="authenticationPreemptive" value="false" />
</bean>
</constructor-arg>
<constructor-arg index="1">
<bean class="org.apache.commons.httpclient.MultiThreadedHttpConnectionManager">
<property name="params">
<bean class="org.apache.commons.httpclient.params.HttpConnectionManagerParams">
<property name="connectionTimeout" value="20000" />
<property name="soTimeout" value="20000" />
<property name="defaultMaxConnectionsPerHost" value="30" />
<property name="maxTotalConnections" value="500" />
</bean>
</property>
</bean>
</constructor-arg>
</bean>
<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
<property name="requestFactory">
<bean class="org.springframework.http.client.CommonsClientHttpRequestFactory">
<property name="httpClient" ref="httpClient" />
</bean>
</property>
</bean>
通过设置defaultMaxConnectionsPerHost
,我预计每个主机的并发连接数 30 。但是通过我的测试,无论我设置多大defaultMaxConnectionsPerHost
,实际数字似乎最多 6 。
我如何进行测试:
netstat
问题:
defaultMaxConnectionsPerHost
的适当值是什么?答案 0 :(得分:0)
经过一些测试,我发现问题中提到的测试方法可能是错误的。 defaultMaxConnectionsPerHost
按预期工作。