Каковы рекомендации сообщества/советы по настройке в Java пула http-соединений для поддержки огромного количества одновременных HTTP-вызовов на одном сервере? Я имею в виду:Оптимизация соединения пула Java
- макс Всего соединения
- соединение макс по умолчанию на маршрут
- стратегия повторного использования
- поддерживать стратегию
- поддерживать ДлИтЕлЬНОСтЬ
- тайм-аут соединения
- ....
(я использую компоненты HTTP Apache 4.3, но я доступен, чтобы исследовать новые решения)
Для того, чтобы быть более ясным, это моя ситуация:
Я разработал REST ресурс, который необходимо выполнить около 10 http вызывает AWS CloudSearch, чтобы получить результаты поиска, которые будут собраны в конечном результате (что я действительно не могу получить по одному запросу). Вся операция должна занимать менее 0,25 секунды. Итак, я запускаю http-вызовы параллельно в 10 разных потоках. Во время теста на скамью, я заметил, что с небольшим количеством одновременных запросов, 5, моя цель достигнута. Но, увеличивая одновременные запросы до 30, наблюдается огромная деградация производительности из-за времени соединения, которое занимает около 1 секунды. При одновременном использовании нескольких одновременных запросов время соединения составляет около 150 мс (точнее, первое соединение занимает 1 секунду, все следующие соединения занимают около 150 мс). Я могу гарантировать, что CloudSearch вернет свой ответ менее чем за 15 мс, поэтому в моем пуле подключений есть проблема.
Спасибо!