Проблема: у меня внутренняя потеря пакетов.Я имею в виду внутренне, потому что перехватил весь трафик с помощью wireshark и подтвердил, что пакет прибыл на сервер, но не пришел к методу channelRead0.
Сценарий: я создал сервер SIP с использованием Netty.Система использует UDP для связи с другими конечными точками SIP и отлично работает при низкой нагрузке.
Мои сомнения касаются дизайна.Поскольку SIP является протоколом сеанса, для каждого полученного пакета мне нужно проверить, к какому сеансу он принадлежит.Большая рабочая нагрузка наверняка находится в синхронизированном списке, который содержит все сеансы (я знаю, что нужно оптимизировать это в будущем).
Вся системная логика находится внутри метода channelRead0, и это, вероятно, причина, по которой я теряю некоторыепакеты.Проблема начинает возникать со скоростью около 500 pkt / sec.
Нет соединения с базой данных (пока), единственный ввод / вывод - запись журнала в файл, который почти не влияет.
Вопрос: как мне правильно спроектировать это для обработки 5000 пкц / сек?Может быть, поместить все пакеты в синхронизированную очередь и обработать их позже?
Спасибо за помощь