1

根据此页面,WSO2 中的共享主题订阅,将按循环顺序向共享客户端 ID 的订阅者传递消息。本文仅显示单个 MB 实例。我想知道当您有一个 MB 实例集群时,如何管理交付,其中有多个订阅者在集群中共享一个客户端 ID。MB 是否能够跨所有节点进行循环传递?

4

1 回答 1

0

WSO2 消息代理是分布式代理。它具有基于插槽的交付模型 [1]。插槽创建和插槽调度发生在集群的协调节点中。每个节点都有槽传递工作者运行以将消息传递到节点的本地订阅。

因此,当集群中有多个订阅共享相同的订阅 id 时,特定节点的本地订阅将按循环顺序获取消息。

由于插槽架构,它保证两个订阅都不会收到相同的消息。因为插槽包含特定范围的消息 ID 集。

示例:假设有两个节点集群,其中 node1 和 node2。假设 node1 是协调节点。有主题调用topic1。Publisher1 向node1 中的topic1 发送1000 条消息,每个节点中有两个订阅者调用subcriber1,subscriber2 来自node1 和subscriber3,subscriber4 来自node2。协调节点将在消息发布时创建槽,并按需分发给运行节点的订阅者。这是通过节俭的沟通发生的。因此,node1 和 node2 中的所有本地订阅者都将循环获取消息。

希望你能理解高级架构。

[1] 更多细节 - https://docs.wso2.com/display/MB300/Architecture

于 2015-10-10T16:43:11.870 回答