Как добиться высокой пропускной способности сервера с помощью netty4

Как добиться высокой пропускной способности сервера с помощью netty4?
В моем тесте размер пакета составляет около 16 байт ~0,5 Кбит / с, скорость передачи около 8,8 Вт / с и не может подняться. Существуют ли какие-либо рекомендации по настройке параметров в netty4 для использования в небольшом пакете?
Код - RocketMQ. Это MQ с самоопределенной структурой хранилища, также использующий частный протокол между брокером и клиентом.
Большое спасибо.

1 ответ

Как сказал в своем комментарии Норман Маурер, без некоторого кода и профилирования трудно помочь. Но я попробую...

Поскольку каждый пакет настолько мал, у вас будет много накладных расходов на их индивидуальную отправку, это связано с тем, как устроен Netty. Когда вы отправляете сообщение, оно проходит через всю цепочку (конвейер), хотя и полезно, но помогает сохранять простоту и модульность, но быстро складывается, если вы отправляете несколько небольших сообщений.

В качестве решения вы можете попытаться поместить их в очередь, которая сбрасывается каждые 10 миллисекунд или после заполнения 100 пакетов. Обратите внимание, что это приведет к увеличению задержки, особенно когда отправляется только несколько пакетов.

Другие вопросы по тегам