HTTP client + NIO.2
От: SkyDance Земля  
Дата: 30.04.14 06:29
Оценка:
Может ли общественность посоветовать библиотеку для HTTP-клиента, которая работала бы наподобие С-шного epoll-multiplexed client?

Примерно следующим образом: есть некий call manager, который должен с очень высокой стабильностью (в идеале с джиттером не более 1 мс) инициировать HTTP-запросы. Которые выполняются довольно долго (вплоть до десятков секунд), и которых в общем случае ожидается от 60 до 400 в секунду (норма — примерно 4000 concurrent HTTP-запросов). Реализация "в лоб" на HTTPClient от Апачей порождает несколько тысяч тредов, после чего все начинает ворочаться с заметными тормозами, и даже главный поток начинает генерировать новые запросы с весьма нестабильными таймингами. Можно ли как-нибудь в одном треде ожидать чтения более 1 сокета?

На С задача довольно тривиально решается epoll'ом в единственном потоке — заранее создается pool TCP соединений, заготавливается кэш вызовов, и в нужную миллисекунду просто вызывается send() в сокет. Но на этой железке по условиям задачи доступа к NDK нет. Зато Java 7 есть (в ближайшей перспективе 8). Есть какие-нибудь варианты?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.