ThingWorx 高可用性
ThingWorx 高可用性
ThingWorx 高可用性叢集的概觀
欲減少重要物聯網 (IoT) 系統中斷的持續時間,您可以在叢集模式下,將 ThingWorx 配置為在高可用性 (HA) 環境中運作。叢集會提供額外的可擴充性與高可用性,前提是所有元件均正確配置。
* 
HA 群集不應用於災害復原解決方案。
* 
不支援針對 HA 部署使用多個可用性區域。區域之間的網路延遲時間可能太長,以致無法在 ThingWorx 與 Apache Ignite 節點之間進行恒定通訊。
以下各部份內容概述了叢集環境的設定與組態,以及 ThingWorx HA 部署的元件與考量事項。
相較於僅符合功能和規模需求的部署,所有 HA 部署都需要額外的資源。這些包括以硬體為基礎的 (例如伺服器、磁碟、負載平衡器,等等) 與以軟體基礎的 (例如同步處理服務及負載平衡器) 附加資源。因此,配置附加資源以確保 HA 部署內沒有單一點失敗。
所有 HA 部署應該將已針對部署分析了應用程式執行時間需求的 SLA (服務層級合約) 作為基礎。例如,系統每個月可以處於離線狀態的小時數?這是否為允許的系統失敗與/或應用程式升級停機時間?HA 系統所需的其他資源數目取決於為其設計的目標 SLA。一般而言,SLA 增加,滿足其需求的資源也會隨之增加。
術語表
高可用性
將依預期持續運作很長一段時間的系統或元件。
可擴充性
可透過增加記憶體、磁碟或 CPU,或新增伺服器來增加系統支援的負載。
叢集
可以同時作用的相同應用程式的實例。叢集提供高可用性與可擴充性。
單一
單一伺服器是叢集中的一個伺服器,將處理諸如計時器與排程器這類的跨叢集行為。該伺服器可確保任務僅在叢集內執行一次。
虛擬 IP 位址
表示應用程式的 IP 位址。使用虛擬 IP 的用戶端通常路由到負載平衡器,然後由該負載平衡器將請求導向至執行應用程式的伺服器。
負載平衡器
此裝置用於接收網路流量並將其散發至準備好接受該網路流量的應用程式。
容錯移轉
此為備份操作模式,在主要元件因為失敗或計劃停機時間而無法使用時,系統元件 (例如處理器、伺服器、網路或資料庫) 的功能將由次要系統元件承擔。
最終一致性
變更需要時間來傳播至叢集環境中的所有伺服器。如需詳細資訊,請參閱最終一致性
共用狀態
在叢集中的多個伺服器之間共用,且無論哪個伺服器查看,都保證相同的狀態。內容資料是共用狀態的範例,其中目前內容值在所有伺服器中都相同。
高可用性 ThingWorx 參考架構
下圖顯示了叢集組態中的 ThingWorx。
下列元件可以是叢集部署的一部份:
使用者和裝置 - HA 功能中沒有角色。從其角度來看未發生任何變更。即使主要 ThingWorx 伺服器中發生了變更,它們始終使用相同的 URL 和 IP 位址。
防火牆 - 無 HA 功能,並可視為選用。通常放置防火牆來實現安全性需求。
負載平衡器 - 負載平衡器管理其支援的應用程式的虛擬 IP 位址。路由至虛擬 IP 位址的所有流量都將被導向至可接收此流量的使用中應用程式。
ThingWorx Connection Servers - 接收源自資產的 Web 通訊端流量並將其路由到 ThingWorx Platform。Connection Server 可在叢集組態中運作。資產被導向至特定的連線伺服器之後,它應該始終使用相同的連線伺服器。如果該伺服器變成離線狀態,則資產應被重新導向至其他可用的連線伺服器。
ThingWorx Foundation - 接收所有使用者與資產流量。
ThingWorx 存放庫 - 這些是必要的儲存位置,例如 ThingworxPlatformThingworxStorageThingworxBackupStorage,以及任何新增以支援實行的其他儲存位置。針對叢集環境,儲存資料夾必須存在於共用儲存位置中,所有 ThingWorx 伺服器都可以從該位置以等同方式存取這些資料夾。
Apache ZooKeeper - ZooKeeper 是 ThingWorx Connection Server 與 Ignite 用於服務探索、單一選擇與分散式協調的集中協調服務。
Apache Ignite - Ignite 提供分散式記憶體快取,可在叢集中的伺服器之間共用狀態。
PostgreSQL - 對於 HA 組態,PostgreSQL 將透過熱待命組態中的兩個或多個伺服器節點進行運作。一個節點接收所有寫入流量,其他節點中的一個可以接收所有讀取流量。將啟動所有節點之間的串流複製,以使得每個節點保持最新。
Pgpool-II - 這僅用於 PostgreSQL HA 組態。Pgpool-II 節點接收 ThingWorx 請求 (讀取與寫入) 並將其導向至適當的 PostgreSQL 節點。它也監視每個 PostgreSQL 節點的健康狀況,並可在其中一個節點離線時啟動容錯移轉及重定任務。
Microsoft SQL Server (無圖片) - Microsoft 容錯移轉功能用來確保至少有一個 MS SQL Server 已上線而且可用。
InfluxDB - ThingWorx 叢集組態不需要實行 InfluxDB。如果需要其符合實行的擷取需求,則請確保針對 HA 配置此選項。
這是否有幫助?