Поддерживает ли S3 конвейерную передачу HTTP? - PullRequest
6 голосов
/ 13 октября 2011

У меня есть тысячи маленьких файлов (около 1 КБ) для загрузки на S3 каждую минуту.Если я загружаю каждый файл в цикле «отправить мой HTTP-запрос - ждать HTTP-ответ S3 - отправить следующий запрос - ждать следующего ответа ...», это будет стоить много времени, потому что мне придется ждать 2 раза задержки между S3 и моим сервером,Конечно, я уже использую заголовок HTTP Keep-Alive.

Поэтому я пытаюсь отправить несколько HTTP-запросов, не ожидая соответствующих (HTTP конвейерная обработка).Я пытаюсь отправить 20 запросов в пакетном режиме и жду 20 ответов.Я ожидал, что это может сэкономить много времени, потому что я все еще могу отправить запрос, когда предыдущий ответ в пути.

Однако, это не делает мир лучше.

Я отправляю свои 20 запросов воколо 200мс, затем я пытаюсь получить ответ.Я ожидал, что смогу получать ответ так же быстро, как отправляю запросы после получения первого ответа, например этот график .

Факты таковы, что после получения первого ответа мне приходится ждать около300 мс для каждого ответа.Нет ничего лучше по сравнению с отправкой одного запроса и получением одного ответа.

Почему я не могу сократить время для конвейерной техники?Почему S3 стоит так много времени на каждый запрос?Поддерживает ли S3 конвейерную передачу HTTP?

Спасибо.

Ответы [ 2 ]

4 голосов
/ 13 октября 2011

Amazon S3 спортивного распараллеливания, чтобы обойти проблему задержки для каждого запроса.

Вы можете делать сотни одновременных запросов к S3 и загружать большие пакеты файлов за очень короткий промежуток времени.

1 голос
/ 27 апреля 2012

Согласно этому сообщению об ошибке в Ubuntu , реализация конвейерной передачи HTTP в S3 нарушает спецификацию HTTP / 1.1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...