0
我的應用程序必須處理客戶端http請求,與某些API進行通信並將數據返回給客戶端。我宣佈全球RestTemplate我的應用程序,如下圖所示:HttpConnectionManagerParams.setDefaultMaxConnectionsPerHost(int)似乎無法正常工作
<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
,我希望每個主機同時連接數爲。但是通過我的測試,看起來實際的數字最多是不管我設置了多大defaultMaxConnectionsPerHost
。
我怎麼辦我的測試:
- 客戶端:通過瀏覽器同時發送20請求我的web應用程序(我試過Firefox和Chrome)。
- 服務器端:
- 問題1:爲什麼每個主機同時連接的數量不是30預期
netstat
問題獲取連接數?
- 問題1:爲什麼每個主機同時連接的數量不是30預期
- 問題2:我的應用程序必須每秒向一臺主機發送約10個請求。每個請求持續2秒。那麼我應該設置什麼合適的價值
defaultMaxConnectionsPerHost
?