我们计划使用新的可插拔仲裁投票功能将ActiveMQ Artemis HA复制与单个主/备份对一起使用。
这篇文章(回应我之前的问题)表明这是可能的:
一般来说,只有使用新的可插拔仲裁投票时才建议使用具有复制功能的单个主/备份对,因为否则大脑分裂的风险非常高。
然而,留档指出:
网络隔离保护需要配置
既然我们的配置中只有一对节点,那么这种说法有什么含义呢?
此外,此链接似乎表明仅使用两个节点无法真正做到:
如果您正在使用复制,那么减少脑裂的推荐节点的最小数量是6
但也:
网络pinger可用于缓解大脑分裂,但配置起来可能很棘手。您需要执行自己的测试以确保它以您想要的方式工作。
我的问题是这在双节点架构中是否有效?如果是这样,是否需要棘手的配置?
最重要的是,如果我们添加第三个节点,它是否可行,相对容易?
我认为六个节点是不可能的。
可插拔的仲裁投票需要与外部系统集成以仲裁投票。默认实现与Apache ZooKeeper集成。
因此,您需要主代理、备份代理和至少一个ZooKeeper节点。但是,如果只有一个ZooKeeper节点,那么这将成为架构的弱点,因为如果该节点发生故障,那么高可用性语义学可能会受到损害。因此,您可能希望为ZooKeeper提供一些冗余。因此,留档建议3个或更多ZooKeeper节点。
需要明确的是,ZooKeeper是解决此类问题的一个相当常见的解决方案,因此组织已经部署了ZooKeeper集群是相对常见的。利用此基础架构实现ActiveMQ Artemis高可用性是很有意义的。
您链接的关于最小集群部署的答案是在2020年实施可插拔仲裁投票之前编写的。因此,该答案已过时。
网络pinger本身从来都不是一个“推荐”的解决方案。对于那些无法部署推荐的3对主/备份,也无法使用共享存储的人来说,这是一种权宜之计,但他们仍然希望对大脑分裂有所缓解。同样,这是在新的可插拔仲裁投票之前很久就实施的。