HTTP клиент с NIO2

Имате някой запознат с HTTP клиент, който се основава на JDK7 и NIO2, внедряване, което използва: AsynchronousSocketChannel

Търся внедряване, което се основава на NIO2 и може да мащабира неограничени, хиляди HTTP заявки едновременно.

БЕЛЕЖКИ:

  1. моля, не ми предлагайте реализация, базирана на NIO1 като Apache::AsyncHTTPClient и JBOSS::Netty framework

  2. Моля, не ми предлагайте решение, базирано на решение за разпространение, търся един клиент, който може да обработва всички HTTP заявки ефективно.

БЛАГОДАРЯ!


person John    schedule 19.09.2011    source източник
comment
защо настояваш за nio2? ако netty или grizzly могат да отговорят на вашите изисквания, защо не използвате един от тях?   -  person sbridges    schedule 20.09.2011
comment
Няма причина да се нуждаете от AsynchronousSocketChannel за мащабиране до хиляди едновременни заявки. Няма причина дори да имате нужда от NIO(1) за това всъщност, java.net прави това перфектно. И така, каква е причината ви?   -  person user207421    schedule 10.10.2011
comment
@irobson Вашият отговор не отговаря на въпроса и е доста груб. Авторът поиска Java решение, използващо NIO2 на JDK7. Node.js е javascript сървър, работещ върху V8 js двигателя от Google. Освен това Node.js работи приблизително наполовина по-добре от NIO2 (AIO) olympum. com/java/java-aio-vs-nodejs.   -  person jeckhart    schedule 29.10.2011


Отговори (2)


Бих препоръчал да разгледате AsyncHttpClient. Написано е от човека, който написа Grizzy за Sun и сега работи за Sonatype.

person jeckhart    schedule 31.10.2011

Вярвам, че грешите в предположението си, че трябва да използвате NIO2 за увеличаване. Моля Слушай!

NIO2 е неблокиращата версия на IO на Java. Това означава, че е по-лесно да пишете високопроизводителни io в NIO2, защото не е необходимо да стартирате и управлявате нишки, тъй като повечето от вашите нишки просто ще чакат IO. Многопоточното програмиране е трудно, така че всичко, което го улеснява, е функция, следователно NIO2.

Въпреки това, като потребител на библиотеката колко трудно е било да се напише библиотеката, не е ваша грижа. Съвременните JVM могат да обработват много нишки и старият io API трябва да е мощен, когато се използва от квалифицирани програмисти. Тъй като сте потребител на библиотеката, предлагам ви просто да намерите най-бързата библиотека.

HTTPClient от Apache е много популярна библиотека. Предлагам ви да се свържете с експертите по този въпрос и да им зададете вашите въпроси относно ефективността. Не съм експерт в тази област, така че не ви казвам, че HTTPClient е най-добрият, просто казвам да не го броите все още и че разговорът с хората от HTTPClient би било добро място да започнете.

Късмет

person Glen P    schedule 10.10.2011
comment
NIO(1) в JDK 1.4 вече беше неблокиращата версия на java.net. NIO2 в JDK 1.7 също съдържа асинхронен I/O. - person user207421; 10.10.2011
comment
Дори не знаех, че има две версии на NIO. Някой редактира малко отговора ми. Но както казах, старият Java IO (не NIO) също е качествен софтуер, той просто има блокиращ дизайн. - person Glen P; 24.10.2011