ThingWorx 高可用性 > 為 ThingWorx HA 安裝及配置 ZooKeeper
為 ThingWorx HA 安裝及配置 ZooKeeper
Apache ZooKeeper 是用於管理分散式應用程式同步處理的開放來源解決方案。其為 ThingWorx 節點提供監視及前置節點選擇服務。在 HA 組態中,建議至少使用三個 ZooKeeper 節點。ZooKeeper 實例數必須是奇數,以維持仲裁。
ThingWorx 如何使用 ZooKeeper
ThingWorx 節點取得主導權後,其會保持 ZooKeeper 的工作階段並保持主導權位置。如果因為 ThingWorx 節點回應失敗而造成工作階段到期,ZooKeeper 服務會選取一個 ThingWorx 待命節點作為下一個前置節點。該 ThingWorx 節點會接到其已成為前置節點的通知並佔據主導權位置,完全連線至資料庫,並開始處理流量。
ZooKeeper 節點也會相互監視狀態。如果使用中節點失敗,則會選擇新的 ZooKeeper 前置節點。這樣會透過這些節點的內部機制提供高可用性 ZooKeeper 服務。ThingWorx 伺服器會利用所有 ZooKeeper 節點的位址進行配置,這些節點使其可尋找目前 ZooKeeper 前置節點。
部署 ZooKeeper
在安裝 Zookeeper 之前,閱讀並瞭解所有安裝文件,包括所有必要先決條件軟體 (例如 Java) 的文件集。瞭解並套用適當的設定 (包括安全性建議) 很重要。當為 Zookeeper 安裝 Java 時,PTC 建議禁用用戶端啟動重新交涉 (即 jdk.tls.rejectClientIntiatedRenegotiation=true)。
下載
可從以下連結下載 ZooKeeper: http://zookeeper.apache.org/releases.html
支援的平台和軟體需求
此處提供部署 ZooKeeper 的指南,包括支援的平台和所需的軟體: http://zookeeper.apache.org/doc/r3.4.5/zookeeperAdmin.html#ch_deployment
ZooKeeper 叢集設定
針對 ThingWorx HA,應部署 ZooKeeper 的叢集 (多伺服器) 設定。Apache 是指作為一個整體的 ZooKeeper 叢集。此處提供建立整體 ZooKeeper 的指導: http://zookeeper.apache.org/doc/r3.4.5/zookeeperAdmin.html#sc_zkMulitServerSetup
配置 ThingWorx 以使用 ZooKeeper
開啟並執行 ZooKeeper 後,可啟動 ThingWorx HA。下列流程可配置 ThingWorx 以辨識 ZooKeeper 伺服器並與之搭配使用。僅在一個整體 ZooKeeper 支援多個 ThingWorx HA 組態時才需要此流程中的一個步驟。
1. 停止所有 ThingWorx 服務。
2. 編輯 platform-settings.json 以包含下列內容:
a. BasicSettings 下,EnableHA 應為 true。例如
“EnableHA”: false,
b. HASettings 下,CoordinatorHosts 應以逗號分隔的清單列出所有 ZooKeeper 節點及其連接埠。例如
“CoordinatorHosts”:
“127.0.0.1:2181,127.0.0.2:2182,127.0.0.3:2181”,
c. (選用步驟) 在 HASettings 下,當整體 ZooKeeper 由多個 ThingWorx HA 組態共用時,CoordinatorZNode 可以用來區分此 ThingWorx HA 組態。
"CoordinatorZNode": "MyThingWorxHA",
3. 如有必要,將修改的 platform-settings.json 傳播至所有 ThingWorx 伺服器。
4. 啟動所有 ThingWorx 伺服器,一次一個,以取得可控制結果。
此時,所有 ThingWorx 伺服器都應運作且可以存取。但是,只有一個 ThingWorx 伺服器可以存取資料庫及其內容。