KahaDB 複製 (實驗性)
功能 > 叢集 > 主從 > KahaDB 複製 (實驗性)
注意
此功能正在審查中,目前不提供支援。
概觀
新的 KahaDB 儲存支援一個非常快速且彈性的複製系統。其特色如下:
- 日誌層級複製 (這表示在複製記錄時,主節點的額外負荷較低)。
- 支援多個從節點。
- 支援在執行階段動態新增從節點。
- 使用多個並行資料傳輸連線來進行初始從節點同步。
- 大型從節點同步可以恢復,因此如果重新啟動從節點,同步進度不會遺失。
- 可設定的最小複本數量,讓您可以暫停處理,直到資料保證已複製足夠的次數。
主節點選舉
KahaDB 支援可插拔的主節點選舉演算法,但目前唯一的實作是基於 ZooKeeper 的實作。
ZooKeeper 用於實作主節點選舉演算法。ZooKeeper 是一個非常快速、已複製、記憶體中的資料庫,其功能使其易於實作叢集控制演算法。它是一個 Apache 專案,您可以免費下載。您必須安裝並至少有一個 ZooKeeper 伺服器正在執行,才能設定 KahaDB 主從組態。
設定 Broker
ActiveMQ Classic 二進位發行版在 $ACTIVEMQ_HOME/conf/ha.xml 中包含一個 KahaDB HA broker 組態。
它被設定為在 localhost 上的 2181 連接埠尋找 ZooKeeper 3.0.0 伺服器。如果您的 ZooKeeper 伺服器不是在此處執行,請編輯組態。
執行下列指令以啟動組態:
prompt> $ACTIVEMQ_HOME/bin/activemq xbean:ha.xml
組態檔案的實際內容如下:{snippet:lang=xml|id=example|url=activemq/trunk/assembly/src/release/conf/ha.xml}
了解 kahadbReplication XML 元素
brokerURI 屬性
請注意,brokerURI 屬性指向另一個 broker 組態檔案。ha-broker.xml 包含當節點接管為主節點時,broker 使用的實際 broker 組態。ha-broker.xml 組態檔案是一個標準的 broker 組態,但在以下方面除外:
- 它必須在 broker 元素上設定 start="false" 屬性。
- 它不得設定 persistenceAdapter。
上述規則允許複製系統在啟動時將複製的 KahaDB 儲存注入到主節點中。
minimumReplicas 屬性
minimumReplicas 指定在同步更新操作被視為成功之前,需要多少資料庫副本。將此值設定為 0 允許 broker 繼續運作,即使沒有連接任何從節點。如果將該值設定為 1 或更大,並且沒有連接任何從節點,則 broker 的持久訊息處理將暫停,直到連接最少數量的從節點並同步資料。
uri 屬性
uri 屬性應始終設定為基於 kdbr:// 的 URI。KDBR 代表「KahaDB 複製」,這是主節點和從節點之間使用的複製協定。主節點綁定指定的連接埠,從節點隨後連線並建立複製連線。uri 中的主機名稱必須更新為實際機器的的主機名稱,因為這也用於識別叢集中的節點。
directory 屬性
這是 KahaDB 將儲存其持久性檔案的資料目錄。