HTTP-клиент с NIO2 - PullRequest
       50

HTTP-клиент с NIO2

6 голосов
/ 19 сентября 2011

У кого-то есть знакомый с HTTP-клиентом, основанным на JDK7 и NIO2, реализация, использующая: AsynchronousSocketChannel

Я ищу реализацию, основанную на NIO2 и способную одновременно масштабировать до тысячи запросов HTTP.

ПРИМЕЧАНИЯ:

  1. пожалуйста, не предлагайте мне реализацию, основанную на NIO1, такую ​​как Apache :: AsyncHTTPClient и JBOSS :: Netty framework

  2. Пожалуйста, не предлагайте мне решение, основанное на распространении, я ищу одного клиента, который мог бы эффективно обрабатывать все HTTP-запросы.

СПАСИБО!

Ответы [ 2 ]

4 голосов
/ 01 ноября 2011

Я бы рекомендовал проверить AsyncHttpClient .Он был написан парнем, который написал Grizzy для Sun и теперь работает для Sonatype.

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

Я полагаю, что вы ошибаетесь в своем предположении, что вы должны использовать NIO2 для увеличения масштабов. Пожалуйста, послушай!

NIO2 - это неблокирующая версия ввода-вывода Java. Это означает, что проще написать высокопроизводительный ввод-вывод в NIO2, потому что вам не нужно запускать и управлять потоками, потому что большинство ваших потоков просто будут ожидать ввода-вывода. Многопоточное программирование сложно, поэтому все, что облегчает его, является функцией, поэтому NIO2.

Однако, как библиотека пользователь , как трудно было написать библиотеку, вас не волнует. Современные JVM могут обрабатывать много потоков, и старый API io должен быть мощным при использовании опытными программистами. Поскольку вы являетесь пользователем библиотеки, я предлагаю вам найти самую быструю библиотеку.

HTTPClient от Apache - очень популярная библиотека. Я предлагаю вам связаться с экспертами по этому вопросу и задать им свои вопросы производительности. Я не являюсь экспертом в этой области, поэтому я не говорю вам, что HTTPClient - лучший, я просто говорю, чтобы пока не считать его, и что общение с людьми из HTTPClient было бы хорошим началом.

Удачи

...