【问题标题】:ActiveMQ forwarding bridge with failover带故障转移的 ActiveMQ 转发桥
【发布时间】:2014-04-14 18:58:30
【问题描述】:

这是我尝试使用 ActiveMQ 实现的目标: 我想要 2 个代理集群:clusterA 和 clusterB。这两个集群之间的数据应该被镜像。因此,当 clusterA 收到一条消息时,它将存储在 storageA 中,并且该消息应该转发到 clusterB(如果有这样的需求)并存储在 storageB 中。另一方面,如果clusterB 收到一条消息,它应该被转发到clusterA。 我想知道根据上面的描述,这样的配置是否被认为是有效的:

    <networkConnectors>
    <networkConnector 
          uri="static:(failover(tcp://clusterB_broker1:port,tcp://clusterB_broker2:port,tcp://clusterB_broker3:port))"
          name="bridge"
          duplex="true"
          conduitSubscriptions="true"
          decreaseNetworkConsumerPriority="false"/> 
    </networkConnectors>

【问题讨论】:

    标签: activemq mom


    【解决方案1】:

    这是一个有效的配置。它表示(假设所有 ClusterA 代理都以这种方式配置)ClusterA 中的代理将首先存储并转发到clusterB_broker1,如果它关闭将存储并转发到clusterB_broker2,然后再到clusterB_broker3 如果@ 987654325@ 已关闭。但是根据您的集群内代理配置,它不会按照您的意愿行事。

    代理配置必须自行设置以进行故障转移,否则当clusterB_broker1 出现故障时您将丢失消息。如果 clusterB 代理没有按如下所述一起工作,那么当clusterB_broker1 出现故障时,发送给它的任何消息都不会在其他 clusterB 代理上出现或访问。新消息将转发给他们。

    如何在集群内进行故障转移取决于您的 ActiveMQ 版本。

    最新版本 (5.9.0) supports 3 故障转移(或主/从)集群配置。为了快速参考,它们是:

    • 共享文件系统主从
    • JDBC 主从
    • 复制的 LevelDB 存储

    早期版本支持主/从配置,该配置具有一个主节点和一个从节点,其中消息被转发到从代理。此设置维护不善,存在错误,已从 ActiveMQ 中删除。

    【讨论】:

    • 谢谢你的回复,我不太明白,你说的是组成集群的broker的数据复制还是故障转移?
    • 我更新了我的答案。让我知道是否更清楚。
    猜你喜欢
    • 2019-05-01
    • 2010-11-06
    • 2017-02-04
    • 2012-06-04
    • 1970-01-01
    • 2021-02-15
    • 1970-01-01
    • 2020-02-03
    • 2020-04-20
    相关资源
    最近更新 更多