Netty требует отправки в том же потоке, что и Select (), который задерживает отправки
-
25-10-2019 - |
Вопрос
Может ли нетти создать рабочую ветку, которая делает все отправки для группы розеток? Похоже, что в настоящее время Нетти публикует исходящие сообщения в очередь и пытается разбудить селектор, который затем копирует данные в неиспользованный буфер и отправляет их. Это требует времени. Можно ли отправить непосредственно из другого потока?
Решение
Это невозможно. Нетти не имеет представления о том, какой поток пользователь позвонит в write (). Поэтому ему нужна очередь запроса на запись и выделенный цикл для выполнения записей. В противном случае приложение будет страдать от спора в зависимости от того, как пользователь написал свое приложение. Под нагрузкой, наличие специальной петли ввода -вывода и протокол с трубопроводом, похоже, дает более высокую пропускную способность.