我们在主/备份设置中有一个 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>