您可以使用 Artemis CLI 來執行啟動序列維護/復原工具,以用於搭配可插拔鎖管理器 (Pluggable Lock Manager) 的複製。
主要的兩個指令是 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 叢集容忍更多故障。