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. Проверь себя;)

Другие вопросы по тегам