情况如下:
- 一周内有几分钟,每分钟都可以达到1M req / s。
- 我们有大约100个实例来保存请求。
- 每个实例都有一个spring dispatcher servlet来处理请求,逻辑非常简单,转换请求并将它们发送给其他服务。这些服务将需要大约1s avg来处理翻译的请求。因此,这些实例目前以低CPU运行。
- 我们正在使用带有8192 maxConnection,300接受计数和同步servlet的apr连接器,同步httpclient来调用其他服务。
醇>
现在,我们正在遭受沉重的超时。所以,我们有三个选择:
- NIO连接器
- 异步servlet(使用DeferedResult)
- 异步IO(即AsyncHttpClient)。在http请求完成后设置延迟结果
这些选项能否适用于我们的情况?或者,更好的主意?