【问题标题】:Artemis replication backup does not failbackArtemis 复制备份不会故障回复
【发布时间】:2020-11-18 16:38:30
【问题描述】:

我有三个“复制”模式的服务器,一个是主服务器,两个是从服务器。

Master 启用了“check-for-live-server”。从站启用了“允许故障恢复”。

故障转移工作正常,但是当主服务器再次可用时,等待至少 5 分钟后,从服务器仍然不进行自动故障恢复。

下面是 HA 设置。

大师(192.168.102.55)broker.xml

    <connectors>
        <connector name="netty-connector">tcp://192.168.102.55:61616</connector>
    </connectors>

    <acceptors>
        <acceptor name="netty-acceptor">tcp://192.168.102.55:61616</acceptor>
    </acceptors>

    <cluster-user>user</cluster-user>
      <cluster-password>password</cluster-password>

      <broadcast-groups>
         <broadcast-group name="bg-group">
            <group-address>231.7.7.7</group-address>
            <group-port>9876</group-port>
            <broadcast-period>5000</broadcast-period>
            <connector-ref>netty-connector</connector-ref>
         </broadcast-group>
      </broadcast-groups>

      <discovery-groups>
         <discovery-group name="dg-group">
            <group-address>231.7.7.7</group-address>
            <group-port>9876</group-port>
            <refresh-timeout>10000</refresh-timeout>
         </discovery-group>
      </discovery-groups>

     <cluster-connections>
         <cluster-connection name="my-cluster">
            <connector-ref>netty-connector</connector-ref>
            <message-load-balancing>ON_DEMAND</message-load-balancing>
            <max-hops>2</max-hops>
            <discovery-group-ref discovery-group-name="dg-group"/>
         </cluster-connection>
      </cluster-connections>

      <ha-policy>
         <replication>
            <master>
                <check-for-live-server>true</check-for-live-server>
            </master>
         </replication>
      </ha-policy>

奴隶 (192.168.102.53)broker.xml:

    <connectors>
        <connector name="netty-connector">tcp://192.168.102.53:61616</connector>
    </connectors>

    <acceptors>
        <acceptor name="netty-acceptor">tcp://192.168.102.53:61616</acceptor>
    </acceptors>

    <cluster-user>user</cluster-user>
    <cluster-password>password</cluster-password>

     <broadcast-groups>
         <broadcast-group name="bg-group">
            <group-address>231.7.7.7</group-address>
            <group-port>9876</group-port>
            <broadcast-period>5000</broadcast-period>
            <connector-ref>netty-connector</connector-ref>
         </broadcast-group>
      </broadcast-groups>

      <discovery-groups>
         <discovery-group name="dg-group">
            <group-address>231.7.7.7</group-address>
            <group-port>9876</group-port>
            <refresh-timeout>10000</refresh-timeout>
         </discovery-group>
      </discovery-groups>

      <cluster-connections>
         <cluster-connection name="my-cluster">
            <connector-ref>netty-connector</connector-ref>
            <message-load-balancing>ON_DEMAND</message-load-balancing>
            <max-hops>2</max-hops>
            <discovery-group-ref discovery-group-name="dg-group"/>
         </cluster-connection>
      </cluster-connections>

      <ha-policy>
         <replication>
            <slave>
                <allow-failback>true</allow-failback>
            </slave>
         </replication>
      </ha-policy>

我使用的 Artemis 版本是 2.11.0。有谁知道我可能会做错什么?

【问题讨论】:

    标签: replication high-availability activemq-artemis


    【解决方案1】:

    故障恢复仅适用于实时/备份对。它不适用于实时/备份/备份三元组。

    在您的用例中,有 3 个代理实例 - 一个是实时的,两个是备份的。但是,备份服务器仅归一台实时服务器所有。这意味着当 3 个代理实例启动时,将有 1 个实时备份对和一个“剩余”备份,它将处于一种空闲状态,等待连接到没有备份的实时代理。然后,如果活动代理失败,活动代理的备份将接管并变为活动,另一个备份现在将成为刚刚变为活动的服务器的备份。一旦失败的代理实例重新启动,它将尝试将自己注册为现在活动代理的备份并启动故障恢复。但是,由于现在在线的代理已经有备份,它会拒绝来自原始在线的注册消息,因为它已经有备份,因此不会发生故障回复。

    需要明确的是,live 一次只能复制到一个 单个 备份。鉴于多个备份可以防止故障恢复工作,我并不清楚它们有什么好处。

    【讨论】:

    • 我为每条消息编号并每毫秒发送一次。发现消费者在连接失败前多次收到接收到的消息。但是,当我将间隔增加到每五秒一次时,情况就消失了。这正常吗?
    • 我不太明白这个问题。这似乎与之前提出的问题不同,因此可能值得提出一个新问题,而不是在这里的 cmets 中来回讨论。
    • 好的,当然!非常感谢。
    猜你喜欢
    • 2022-01-12
    • 2021-04-22
    • 2014-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    • 1970-01-01
    • 2018-08-30
    相关资源
    最近更新 更多