订阅集群WSO2 MB

时间:2015-10-08 20:34:18

标签: wso2 wso2mb

根据此页面Shared Topic Subscription in WSO2,向订阅者共享客户端ID的消息将按循环顺序完成。本文仅显示单个MB实例。我想知道如果有一个MB实例集群,如果有多个订阅者在整个集群中共享客户端ID,那么如何管理传递。 MB是否能够跨所有节点进行循环传送?

1 个答案:

答案 0 :(得分:0)

WSO2消息代理是分布式代理。它有基于插槽的交付模型[1]。插槽创建和插槽分派发生在集群中的协调器节点中。每个节点都有一个插槽传递工作程序,用于将消息传递给节点的本地订阅。

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

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

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

希望您能理解高级架构。

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