背景:這是使用AIMDBackoffManager實例化HttpClient的正確方法嗎?
我使用的HttpClient(SolrJ)連接到Solr的服務。但問題與Solr沒有直接關係。
我在進行負載測試時遇到以下問題。
引起:java.lang.IllegalStateException:無效的BasicClientConnManager的使用:連接仍然分配。
SOF答案 - 使用連接池管理器
Invalid use of BasicClientConnManager: connection still allocated
問:
我使用的PoolingHttpClientConnectionManager如下面的代碼。我不希望手動限制連接大小,而是使用AIMDBackoffManager來管理它。但是,我看到AIMDBackoffManager
需要連接池作爲其參數。
public static final PoolingClientConnectionManager poolingConnectionManager = new PoolingClientConnectionManager();
public static DefaultHttpClient getHttpClient(){
DefaultHttpClient httpClient = new DefaultHttpClient(poolingConnectionManager);
httpClient.setBackoffManager(new AIMDBackoffManager(poolingConnectionManager));
...
...
}
我GOOGLE了公平一點,但我無法找到的BackoffManager
使用任何的例子。所以,這就是我所做的,但我並不興奮將連接管理器兩次傳遞給DefaultHttpClient
。或者我不應該擔心考慮到我第一次將它傳遞給HttpClient
並且第二次將它傳遞給BackoffManager
?
我使用的HttpClient-4.2.3
同意@Peter。網上沒有太多的幫助。 –
該功能的原始貢獻者從來沒有完全完成並記錄它。請參閱https://issues.apache.org/jira/browse/HTTPCLIENT-1101。我們會很樂意把PR加以改進。 – oleg