Netty上的通道处理程序上下文中的数据包丢失

时间:2018-10-09 14:31:38

标签: java netty

问题:我内部有一些数据包丢失。我的意思是内部,因为确实用Wireshark捕获了所有流量并确认数据包到达服务器,但没有到达channelRead0方法。

场景: 我使用Netty构建了SIP服务器。系统使用UDP与其他sip端点进行通信,并且在低负载下运行良好。

我的疑问是关于设计。由于SIP是会话协议,因此在收到的每个数据包上,我都需要检查它属于哪个会话。肯定会在包含所有会话的同步列表上承担繁重的工作量(我知道将来需要对此进行优化)。

整个系统逻辑都在channelRead0方法内部,这可能是我丢失某些数据包的原因。该问题开始以大约500 pkt / sec的速度发生。

还没有数据库连接,唯一的I / O是将日志写入几乎没有影响的文件。

问题:我应该如何适当设计以处理5000 pkts / sec?也许将所有数据包放入同步队列中,并在以后处理它们?

感谢所有帮助

0 个答案:

没有答案