计数调用apache HttpClient

时间:2017-08-24 04:53:37

标签: java apache-httpclient-4.x

在我的项目中,从另一个应用程序B调用特定的远程服务器A.应用程序B分布在X节点上。应用程序B有一个位置,其中创建了PoolingHttpClientConnectionManager和HttpClient。但是,HttpClient.execute()方法遍布应用程序B中的代码库。

对于遥测目的,我想跟踪每个X节点对远程服务器A的并发呼叫数。我正在使用StatsD客户端递增和递减计数器以跟踪呼叫。想法是在呼叫开始时递增计数器,并在呼叫成功,失败或超时时递减计数器。

我的第一个想法是使用HttpRequestInterceptor和HttpResponseInterceptor来递增和递减计数器。但是在超时的情况下,没有响应,因此不会调用HttpResponseInterceptor。

是否有人针对此问题或更好的解决方案进行了解决方法?我知道如果我们可以注释HttpClient.execute()的方法,问题就更简单了,但考虑到代码库的大小,这是一个昂贵的解决方案。因此,我正在寻找更好的选择。提前谢谢。

1 个答案:

答案 0 :(得分:2)

尝试使用自定义请求执行拦截器而不是协议拦截器

RxJava2