您可以使用 Artemis CLI 來執行啟動序列維護/復原工具,以用於搭配可插拔鎖管理器 (Pluggable Lock Manager) 的複製

主要的兩個指令是 activation listactivation set,可以一起使用來復原本地/協調啟動序列所發生的某些災難。

以下是一個圍繞著 RI (使用 Apache ZooKeeperApache Curator) 建構的災難情境,以示範這些指令的用法。

1. ZooKeeper 叢集災難

一個正常的 ZooKeeper 叢集應該至少使用 3 個節點,但是如果所有這些節點都崩潰,遺失了管理複製所需的任何啟動狀態資訊,會發生什麼事?

在災難期間(即 ZooKeeper 節點無法再連線),會發生以下情況:

  • 作用中的代理程式關閉(如果重新啟動,則應掛起等待重新連線至 ZooKeeper 叢集)

  • 被動的代理程式取消配對,並等待重新連線至 ZooKeeper 叢集

必要的管理動作

  1. 停止所有代理程式

  2. 重新啟動 ZooKeeper 叢集

  3. 從代理程式的 bin 資料夾執行此指令,搜尋 NodeID 的本機啟動序列最高的代理程式

    $ ./artemis activation list --local
    Local activation sequence for NodeID=7debb3d1-0d4b-11ec-9704-ae9213b68ac4: 1
  4. 從本機啟動序列最高的代理程式的 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
  5. 重新啟動所有代理程式:先前處於作用中的代理程式應該可以再次處於作用中

ZooKeeper 節點越多,發生此類災難需要管理介入的可能性就越小,因為它允許 ZooKeeper 叢集容忍更多故障。