核心协议
-
NIM(Node-Independent Message)
- 定义:NIM是一种协议,允许节点之间通信而不依赖于中间节点。
- 作用:确保消息队列的可靠性和一致性,支持消息的同步和订阅。
-
SYN-INFO
- 定义:SYN-INFO是消息队列中的信号,用于确认消息的到达。
- 作用:节点收到消息时会发送SYN-INFO,确认消息的完整性。
-
消息队列
- 定义:消息队列是消息传递的中间层,允许消息同步和处理。
- 功能:消息到达时发送SYN-INFO,节点读取并处理消息。
主要协议
-
消息订阅协议
- NIM:确保消息的可靠性和同步性。
- SYN-INFO:确认消息的到达,支持订阅事件。
-
消息队列结构
- 消息类型:包括数据类型消息(仅包含数据和类型)和数据类型消息(包含多个数据字段)。
- 数据字段:数据类型消息包含多个数据字段;数据类型消息包含数据ID和数据类型。
- 状态字段:数据类型消息可能包含状态信息,数据类型消息可能仅包含数据字段。
-
消息队列读写机制
- 读写操作符:如message.setFromNode()和messageSendMessage()。
- 同步机制:确保消息队列的读写同步,保证每个节点读取最新的消息。
-
错误消息处理
- 错误消息类型:支持错误消息,如消息未到达或错误信息。
- 处理方法:标记为错误消息,发送到队列,节点处理后重新发送。
-
消息队列同步器
- 功能:同步消息队列的读写操作,确保每个节点都能及时获取最新消息。
- 实现:可能使用消息队列的读写同步机制或其他同步技术。
实际应用
- 消息同步:确保消息在多个节点之间同步,实现一致性和及时性。
- 订阅处理:节点订阅事件后,及时处理消息,处理成功或失败后重新发送消息。
- 异步处理:在高延迟或高网络延迟环境中,采用消息队列实现异步处理,避免长时间等待。
- 异步队列:支持异步队列,节点之间通过消息队列进行消息传递,减少延迟。
节点订阅服务通过消息队列实现消息的同步和订阅,支持消息的可靠传输和处理,核心协议包括NIM、SYN-INFO和消息队列,其结构和读写机制决定了系统的性能和稳定性,通过消息队列的同步和错误处理,实现消息的可靠传播,适用于分布式系统中复杂场景下的消息订阅需求。









