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

背景:

  • 我正在使用HttpClient(SolrJ)连接到Solr服务。不过,这个问题与Solr没有直接关系

  • 在进行负载测试时,我遇到了以下问题

    原因:java.lang.IllegalStateException:BasicClient ConnManager的使用无效:连接仍已分配

  • SOF应答-使用池连接管理器

  • 问题:

    我在下面的代码中使用as。我不希望手动限制连接大小,而是希望使用。但是,我看到,
    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的改进。