Netty NIO客户端行为和服务器OrderedMemoryAwareThreadPoolExecutor

Netty NIO客户端行为和服务器OrderedMemoryAwareThreadPoolExecutor,netty,Netty,这对我来说应该是显而易见的,但我仍然想确认以下几点 给定使用OrderedMemoryAwareThreadPoolExecutor和以下形式的客户端的特定通道和NIO Netty服务器: OIO阻塞客户端-我希望响应顺序与请求顺序匹配 使用阻塞读取的NIO客户端-我希望响应顺序与请求顺序匹配 纯NIO异步客户端(无阻塞读取)-我不希望响应顺序与请求顺序匹配 首先,请让我知道,如果上述是不正确的。如果是,请纠正我 对于断言3),服务器仍然按照接收每个事件的顺序处理请求,但由于客户端是异步的,因此

这对我来说应该是显而易见的,但我仍然想确认以下几点

给定使用OrderedMemoryAwareThreadPoolExecutor和以下形式的客户端的特定通道和NIO Netty服务器:

  • OIO阻塞客户端-我希望响应顺序与请求顺序匹配
  • 使用阻塞读取的NIO客户端-我希望响应顺序与请求顺序匹配
  • 纯NIO异步客户端(无阻塞读取)-我不希望响应顺序与请求顺序匹配 首先,请让我知道,如果上述是不正确的。如果是,请纠正我

    对于断言3),服务器仍然按照接收每个事件的顺序处理请求,但由于客户端是异步的,因此发送请求的顺序是无法预测的。是吗

    因此,似乎响应顺序与客户的角度不同。由于客户端的异步特性,请求发送到服务器的顺序实际上并不清楚


    对于我正在从事的一个项目,我需要明确我对此的理解,因此非常感谢您的帮助。

    只要您使用TCP,响应顺序必须与您在服务器中发送它们的顺序一致。这只有在使用UDP时才是正确的。

    你好,诺曼,谢谢。对不起,我对TCP的了解不如应有的好。你说“必须”是因为TCP协议要求响应必须与请求的顺序一致吗?请求和响应之间没有关系。。我只是说,如果你在一边写一些数据包,如果你使用tcp,它们在另一边将以相同的顺序被接收。事实上,这涵盖了请求端。但我的问题集中在与请求顺序相关的响应顺序上。你能验证我上面的三个断言是否正确吗?再次感谢。我最后阅读了OrderedMemoryAwareThreadPoolExecutor文档,现在我清楚地意识到事件是按顺序处理的。我还写了一个测试来说服我自己,这毫无疑问地留在我的脑海里。谢谢