S3是否支持HTTP流水线操作?

Cel*_*ebi 6 http amazon-s3 amazon-web-services pipelining

我每分钟都有数以千计的小文件(大约1 KB)上传到S3.如果我上传循环中的每个文件"发送我的HTTP请求 - 等待S3的HTTP响应 - 发送下一个请求 - 等待下一个响应...",则需要花费大量时间,因为我必须等待S3和我的服务器之间的2次延迟.当然我已经使用了HTTP Keep-Alive标头.

所以我尝试发送多个HTTP请求而不等待相应的(HTTP流水线).我尝试批量发送20个请求并等待20个响应.我预计这可能会节省很多时间,因为我仍然可以在前一个响应途中发送请求.

然而,它并没有让世界变得更好.

我在大约200ms内发送了20个请求,然后我尝试收到响应.我希望我收到响应的速度与收到第一个响应后发送请求的速度一样快,就像这个图表一样.

事实是,在我收到第一个回复之后,我必须等待大约300毫秒的每一个回复.与发送一个请求和接收一个响应相比,它没有任何好处.

为什么我不能缩短流水线技术的时间?为什么S3为每个请求花费了这么多时间?S3是否支持HTTP流水线操作?

谢谢.

Eri*_*ond 4

Amazon S3 采用并行化来解决每个请求的延迟问题。

您可以向 S3 发出数百个并发请求,并在很短的时间内上传大批量文件。