Java 这是使用AIMDBackoffManager实例化HttpClient的正确方法吗?
背景:Java 这是使用AIMDBackoffManager实例化HttpClient的正确方法吗?,java,httpclient,apache-httpclient-4.x,solr4,Java,Httpclient,Apache Httpclient 4.x,Solr4,背景: 我正在使用HttpClient(SolrJ)连接到Solr服务。不过,这个问题与Solr没有直接关系 在进行负载测试时,我遇到了以下问题 原因:java.lang.IllegalStateException:BasicClient ConnManager的使用无效:连接仍已分配 SOF应答-使用池连接管理器 问题: 我在下面的代码中使用as。我不希望手动限制连接大小,而是希望使用。但是,我看到,AIMDBackoffManager需要连接池作为其参数 public static fin
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,我也冒险进入了这片深水区。我一直在研究如何使用ServiceUnavailableRetryStrategy,在我的案例中,由于BackoffManager,它似乎失败了。我的印象是,这还不是一个完整的功能,因为我无法用谷歌搜索出它的用法,而且HttpClient源代码中也没有太多内容。我也冒险进入了这一深渊。我一直在研究如何使用ServiceUnavailableRetryStrategy,在我的案例中,由于BackoffManager,它似乎失败了。我的印象是,这不是一个完整的功能,因为我无法用谷歌搜索出它的用法,HttpClient源代码中也没有太多内容。AIMDBackoffManager构造函数采用了一个(由连接管理器实现的)。查看此接口,您将看到它只返回池的路由特定统计信息,这是BackoffManager用于执行其任务的统计信息
因此,在构建客户机时,您不必担心两次传递连接管理器,只需注意AIMDBackoffManager在其回退和探测实现中获得了连接管理器上的锁,您可以在中看到。AIMDBackoffManager构造函数采用a(连接管理器实现)。查看此接口,您将看到它只返回池的路由特定统计信息,这是BackoffManager用于执行其任务的统计信息
因此,在构建客户机时,您不必担心两次传递连接管理器,只需注意AIMDBackoffManager在其回退和探测实现中获得了连接管理器的锁,您可以在中看到。Agreed@Peter。网络上对此没有太多帮助。该功能的原始贡献者从未抽出时间完全完成并记录它。看见我们将很乐意接受改进后的PRs。同意@Peter。网络上对此没有太多帮助。该功能的原始贡献者从未抽出时间完全完成并记录它。看见我们将乐于接受PRs的改进。