哪些公共指导方针/建议可以在Java中配置http连接池以支持到同一服务器的大量并发http调用?我的意思是:Java池连接优化
- 最大总连接
- 每路最大默认连接
- 重用策略
- 永葆战略
- 存活时间
- 连接超时
- ....
(我使用的Apache HTTP组件4.3,但我可以去探索新的解决方案)
为了更清楚,这是我的情况:
我开发了需要执行约10 REST资源http调用AWS CloudSearch以获取搜索结果以收集最终结果(我真的无法通过单个查询获取)。 整个操作必须少于0.25秒。所以,我在10个不同的线程中并行运行http调用。 在benchamarking测试过程中,我注意到并发请求很少,5,我的目标达成了。但是,将并发请求数增加到30个,由于连接时间大约需要1秒,所以性能大幅下降。如果没有多个并发请求,则连接时间大约为150毫秒(更准确地说,第一个连接需要1秒,以下所有连接大约需要150毫秒)。我可以确保CloudSearch在不到15毫秒内返回其响应,因此我的连接池中存在问题。
谢谢!