您可以使用 Artemis CLI 执行激活序列维护/恢复工具,用于 复制,并使用可插拔锁管理器。
两个主要命令是 activation list
和 activation set
,它们可以一起使用来恢复本地/协调激活序列发生的某些灾难。
以下是一个围绕 RI(使用 Apache ZooKeeper 和 Apache curator)构建的灾难场景,用于演示这些命令的使用方法。
1. ZooKeeper 集群灾难
一个合适的 ZooKeeper 集群应该使用至少 3 个节点,但是如果所有这些节点都崩溃,丢失管理复制所需的任何激活状态信息会发生什么?
在灾难期间(即 ZooKeeper 节点不再可访问)会发生以下情况
-
活动代理关闭(如果重新启动,应该挂起等待再次连接到 ZooKeeper 集群)
-
被动代理取消配对并等待再次连接到 ZooKeeper 集群
必要的管理操作
-
停止所有代理
-
重新启动 ZooKeeper 集群
-
通过从代理的
bin
文件夹运行此命令,查找具有其NodeID
的最高本地激活序列的代理$ ./artemis activation list --local Local activation sequence for NodeID=7debb3d1-0d4b-11ec-9704-ae9213b68ac4: 1
-
从具有最高本地激活序列的代理的
bin
文件夹# assuming 1 to be the highest local activation sequence obtained at the previous step # for NodeID 7debb3d1-0d4b-11ec-9704-ae9213b68ac4 $ ./artemis activation set --remote --to 1 Forced coordinated activation sequence for NodeID=7debb3d1-0d4b-11ec-9704-ae9213b68ac4 from 0 to 1
-
重新启动所有代理:以前处于活动状态的代理应该能够再次处于活动状态
ZooKeeper 节点越多,发生此类灾难需要管理员干预的可能性就越小,因为它允许 ZooKeeper 集群容忍更多故障。