Framedecoder缓冲区在高吞吐量时损坏

时间:2013-10-29 04:53:14

标签: netty

我有一个简单的解码器,它扩展了FrameDecoder来解码一个二进制消息,它有一个表示消息体长度的整数头字段(4个字节)。在解码实现中,读取前四个字节以获得消息的长度。当缓冲区具有“长度”字节时,会创建一个新缓冲区来保存消息。

当系统处于正常负载时,此工作正常。但是,有时当吞吐量很高时,我注意到缓冲区已损坏(“长度”具有非常高的值)。

使用FrameDecoder是否有任何性能限制?有没有人遇到过这个问题?请分享您对可能导致此问题的看法。

更多信息:这种情况主要发生在messageReceived 阻止(等待某些操作完成)一段时间然后恢复运行的情况。

在messageReceived中阻塞调用是否有任何问题?如果是这样,有没有解决方法?请帮助我解决此问题。

0 个答案:

没有答案