我正在进行某种加密,这取决于通过Netty频道发送的消息的顺序。我期待的是,如果我将消息B之前的消息A写入通道,那么它们应该按照我将它们写入通道的相同顺序发送到远程套接字。那么我需要Netty支持的情况吗?
另一方面,Netty的频道接受并发写入呼叫,我怀疑我的要求是否已经满足。由于数据结构的状态,我今天必须在statefull(每个通道一个)编码器上进行同步。但是我仍然不确定过滤器内同步是否有助于我的需要。
答案 0 :(得分:4)
是的,邮件的传输顺序与调用Channel.write(..)的顺序相同。你无需担心她。
答案 1 :(得分:0)
从this issue获得的答案。 (感谢Scottmitch@github
)。
Netty在以下情况下可以提供“订购”:
EventLoop
线程的所有写操作;或EventLoop
线程进行写操作(即所有写操作都在其他线程中完成)。要记住这是微妙但重要的事情,因为它可能导致痛苦的错误。如果某些channel.write()
调用来自应用程序线程,而某些EventLoop
来自应用程序线程,则从应用程序的角度看,写入似乎是乱序的。查看有关链接问题的更多详细信息。
这个问题似乎是Netty写入顺序的头条搜索结果,因此想确保它提到了这一重要警告。