整体概述见 http://dreamyouxi.com:7129/blog/1203。
这里的消息队列(MessageQueue)与广义概念略有不同——它是为了解决服务器点对点通信中的多信道问题而引入的。
常规 IPC 方案中,服务器之间通常只有一条信道(TCP-socket)用于双工通信。而在 StickEngine 中引入 MessageQueue 的目的,是为了提升多线程化进程的 IPC 性能。
该点对点 MQ 的规则与特点
- RPC 模型采用一问一答模式,通信双方始终使用同一条 Channel,由 RPC 调用发起方决定。
- Channel 的负载均衡算法为轮询 + 限流。
- 消息模型中,Channel 则可能不一致。
- 不同 Channel 上的消息不保证顺序性。
- 通信基础协议为 TCP,Channel 设计为双工工作模式。
- 只要有一条 Channel 可用,即认为该 MQ 可用。