【问题标题】:activemq failover : primary node recover consumers?activemq 故障转移:主节点恢复消费者?
【发布时间】:2012-06-21 07:11:10
【问题描述】:

我是activemq 的新手。我已经配置了两台activemq服务器并在failover传输中使用它们。他们工作正常。我的意思是,如果一个 activemq 出现故障,另一个会拿起队列。我的问题是当主服务器启动时它不恢复队列。如果主服务器启动,是否有任何此类配置或协议可以管理它,那么消费者应该回到它。

目前我的配置是:

    <transportConnectors>
                    <transportConnector name="openwire" uri="tcp://0.0.0.0:61616" updateClusterClients="true" rebalanceClusterClients="true"/>
    </transportConnectors>
<networkConnectors>
                <networkConnector uri="static:(tcp://192.168.0.122:61616)"
                networkTTL="3"
                prefetchSize="1"
                decreaseNetworkConsumerPriority="true" />
</networkConnectors>

我的连接 uri 是:

failover:(tcp://${ipaddress.master}:61616,tcp://${ipaddress.backup}:61616)?randomize=false

我还想在发生故障转移时发送邮件,以便我可以知道 activemq 是否已关闭。

【问题讨论】:

    标签: activemq failover


    【解决方案1】:

    您在那里配置的不是真正的 HA 部署,而是network of brokers。如果您在网络中配置了两个代理,每个代理都有自己的消息存储,其中随时包含部分消息集(请参阅how networks of brokers work)。

    您可能希望看到的行为是,如果一个代理发生故障,另一个代理会从失败的代理停止的位置恢复(故障代理持有的所有未传递消息)。为此,您需要使用(最好是共享存储)master-slave 配置。

    【讨论】:

      【解决方案2】:

      我已经做到了。并发布解决方案,以防任何人遇到同样的问题。 此功能在 activemq 5.6 中可用。连接 url 中的priorityBackup=true 是告诉消费者返回主节点(如果可用)的关键。

      我的新连接 uri 是:

      failover:master:61616,tcp://backup:61616)?randomize=false&amp;priorityBackup=true
      

      更多详情请参阅here

      【讨论】:

      • 这里的 URI 好像有错字;我希望它是failover:(tcp://master:61616,tcp://backup:61616)?randomize=false&amp;amp;priorityBackup=true
      猜你喜欢
      • 2016-05-19
      • 1970-01-01
      • 2015-11-10
      • 1970-01-01
      • 2017-04-19
      • 1970-01-01
      • 2015-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多