HTTP-клиент для пропускной способности - Netty vs Apache HttpAsyncClient
Я заинтересован в выполнении около 50 HTTP-запросов в секунду с одного компьютера. Меня не очень заботит задержка, но мне важна пропускная способность.
Я пытаюсь решить, использовать ли Apache HttpAsyncClient или использовать Netty. Может ли кто-то пролить свет на преимущества каждого из них в отношении моей проблемы?
Я нашел это сравнение, но я надеялся получить немного более подробное объяснение, какой из них лучше и для какого варианта использования. Кроме того, означает ли сравнение, что использование синхронного HTTP-клиента Apache с 200 потоками будет лучше, чем другие варианты? Разве 200 потоков не слишком много (если я использую обычный компьютер с 4 ядрами, 2 потоками на ядро и 12 ГБ ОЗУ)?
заранее спасибо
1 ответ
Основная проблема с этими тестами заключается в том, что в реальной жизни у вас больше потоков и гораздо больше шума, поэтому вы не можете ожидать получения аналогичных результатов в производстве, если не выберете вариант асинхронного ввода-вывода.
Вы стремитесь к увеличению пропускной способности, и, как и ожидалось, клиенты на базе Netty значительно выигрывают в своем тесте. Так что это, вероятно, ваш лучший выбор.
Мы очень успешно используем Netty для широкого спектра приложений, и это никогда не подводит нас. Вы можете использовать ning async-http-client, и тогда вам не нужно будет реализовывать клиент самостоятельно.
Однако учтите, что, как я отмечал в комментариях, я основываю свой ответ на своем личном опыте и наших производственных показателях. Никогда не верьте ни случайному тестовому посту, который вы видите в Интернете, ни ответу Stackru. Проверь себя;)