java为什么我不应该在FutureRequestExecutionService中使用PoolightTPClientConnectionManager?
我正在编写一个需要运行许多并行http请求的服务。它也将部署在自动扩展环境中,但我希望尽可能多地从每个服务实例中获得性能
我看到了这篇帖子,注意到有人建议不要把这两门课混在一起
我很好奇为什么。基本上,我希望将http客户机作业提交给executor服务,并希望http连接池到位,以重用http连接。也许我想得太多了,但我不明白为什么在一个应用程序中结合这两个类/概念是个坏主意
另外,我注意到响应中给出的示例在每个FutureRequestExecutionService中使用一个http客户端实例。这让我有点紧张,但CloseableHttpClient是线程安全的,所以可能我担心的不必要
此外,对于我的代码提交的大多数客户端任务,我不在乎响应是否为200,如果不是,我只是计划增加一个错误跟踪指标,并可能记录异常,所以我考虑使用回调路径。在这方面,我不清楚回调将在哪里运行。如果我的线程池线程运行并完成,即没有阻止http请求。那么哪个线程运行回调代码呢
# 1 楼答案
有问题的帖子建议不要“……PoollightTPClientConnectionManager和FutureRequestExecutionService连接代码的紧密耦合……”。没有理由不将
FutureRequestExecutionService
与PoolingHttpClientConnectionManager
一起使用