ActiveMQ Artemis HA OOME 崩溃时的脑裂问题

问题描述 投票:0回答:1

我们在主/备份设置中有一个 ActiveMQ Artemis 2.31.x HA 配置。当您优雅地扩展/停止主 Pod 时,一切工作正常,其中备份变为活动状态,并且主 Pod 在重新启动后成为备份,并且流量正确路由到新的主 Pod。

但是,当主实例因 OOME 崩溃 (

OutOfMemoryError
) 时,就会出现问题,备份变为活动状态,但只有部分连接转到此新主实例,而其他连接仍保留在崩溃后重新启动并成为备份的原始主实例上。此外,我还能够在重新启动的备份上运行队列统计信息,而这通常无法在干净的备份实例上执行。由于 OOME 导致的崩溃,主备份之间的切换似乎不干净。这是预期的吗?换句话说,即使在 OOME 的情况下,ActiveMQ Artemis 是否也应该在实时和备份之间干净地切换?

我们正在使用复制:

<ha-policy>
   <replication>
      <master>
         <check-for-live-server>true</check-for-live-server>
      </master>
   </replication>
</ha-policy>
jms activemq-artemis high-availability
1个回答
0
投票

如果您使用一对主要/备用经纪商,您将特别容易受到脑裂的影响。有几种方法可以减轻脑裂:

  • 使用ZooKeeper作为共识的仲裁者。请参阅示例此处
  • 使用 3 个主要/备用对来建立适当的投票法定人数。
  • 使用基本网络“pinger”功能。

文档中查找更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.