是否存在基于异步I/O的Aws Java客户端?

Usm*_*ail 9 java jetty amazon-web-services

1)是否存在使用异步I/O而不是线程池的aws sdk的实现?我正在开发一个高度可扩展的Web服务,并且分析显示CPU正在浪费大量循环来管理来自amazon的网络I/O.

2)当前客户端使用Apache Http Client,如果我找不到异步实现,我将分叉我自己的版本来实现它.我在考虑使用Jetty Http Client.混合Jetty和Apache库是不好的形式?还有更好的选择吗?

Ste*_*pel 7

1)是否存在使用异步I/O而不是线程池的aws sdk的实现?

不是我所知道的,如果它已经存在,我很惊讶这很难找到.

2)当前客户端使用Apache Http Client,如果我找不到异步实现,我将分叉我自己的版本来实现它.[...]有更好的选择吗?

确实有一个更好的选择 - AWS SDK for Java目前使用来自Apache HttpComponentsHttp Client版本4.x(您链接到旧版3.1 JavaDocs),它也方便地提供Async HttpClient:

Async HttpClient基于HttpCore NIO和HttpClient组件的HTTP/1.1兼容HTTP代理实现 .它是Apache HttpClient的补充模块,适用于特殊情况,在原始数据吞吐量方面,处理大量并发连接的能力比性能更重要.[强调我的]

正如强调的那样,只应为各自的用例提供便利,但(根据您的评论)您向AW发送了数千个请求,这意味着开放请求往往会堆积,因此这可能确实有所帮助.

  • 最后有人回答了问题.谢谢 (2认同)