Netty требует отправки в том же потоке, что и select (), что задерживает отправку - PullRequest
1 голос
/ 30 ноября 2011

Возможно ли для Netty создать рабочий поток, который выполняет все посылки для группы сокетов? Похоже, что в настоящее время netty отправляет исходящие сообщения в очередь и пытается разбудить селектор, который затем копирует данные в неиспользуемый буфер и отправляет его. Это требует времени. Можно ли отправить напрямую из другого потока?

1 Ответ

3 голосов
/ 01 декабря 2011

Это невозможно. Нетти не знает, из какого потока пользователь будет вызывать write (). Следовательно, для выполнения записи требуется очередь запросов на запись и выделенный цикл. В противном случае приложение будет страдать от конфликта в зависимости от того, как пользователь написал свое приложение. Под нагрузкой кажется, что наличие выделенного цикла ввода / вывода и запуск протокола с конвейерной передачей дают более высокую пропускную способность.

...