整体概述见 http://dreamyouxi.com:7129/blog/1203

这里的消息队列(MessageQueue)与广义概念略有不同——它是为了解决服务器点对点通信中的多信道问题而引入的。

常规 IPC 方案中,服务器之间通常只有一条信道(TCP-socket)用于双工通信。而在 StickEngine 中引入 MessageQueue 的目的,是为了提升多线程化进程的 IPC 性能。

该点对点 MQ 的规则与特点

  1. RPC 模型采用一问一答模式,通信双方始终使用同一条 Channel,由 RPC 调用发起方决定。
  2. Channel 的负载均衡算法为轮询 + 限流。
  3. 消息模型中,Channel 则可能不一致。
  4. 不同 Channel 上的消息不保证顺序性。
  5. 通信基础协议为 TCP,Channel 设计为双工工作模式。
  6. 只要有一条 Channel 可用,即认为该 MQ 可用。