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