背景 :
我正在使用 HttpClient (SolrJ) 连接到 Solr 服务。不过,这个问题与 Solr 没有直接关系。
在进行负载测试时,我遇到了以下问题。
原因:java.lang.IllegalStateException:BasicClientConnManager 的使用无效:连接仍然分配。
SOF 答案 - 使用池连接管理器
问题 :
我正在使用PoolingHttpClientConnectionManager,如下面的代码所示。我希望使用AIMDBackoffManager来管理它,而不是手动限制连接大小。但是,我看到AIMDBackoffManager
需要连接池作为其参数。
public static final PoolingClientConnectionManager poolingConnectionManager = new PoolingClientConnectionManager();
public static DefaultHttpClient getHttpClient(){
DefaultHttpClient httpClient = new DefaultHttpClient(poolingConnectionManager);
httpClient.setBackoffManager(new AIMDBackoffManager(poolingConnectionManager));
...
...
}
我用谷歌搜索了一下,但我找不到任何关于BackoffManager
. 所以,这就是我所做的,但我对将连接管理器两次传递给DefaultHttpClient
. HttpClient
或者考虑到我第一次将其传递给并且第二次将其传递给 ,我是否应该担心BackoffManager
?
我正在使用 httpclient-4.2.3