高可用性和災害復原概觀
- 已更新: 2021/02/19
高可用性和災害復原概觀
高可用性 (HA) 在 IQ Bot 服務、服務器或數據庫出現故障時提供故障轉移解決方案。災害復原 (DR) 會在發生導致整個資料中心故障的災害時,提供分置兩地的復原解決方案。
IQ Bot HA 和 DR 解決方案
在 IQ Bot 環境中,高可用性 (HA) 和災害復原 (DR) 的實作會減少停機時間,並維護bot活動的業務連續性 (CoB)。
- 高可用性 (HA)—高可用性是一種體系結構系統設計,用於嘗試保護系統免受某些故障情況的影響。這意味着即使系統的某些部分發生故障,整體而言,它仍然可用且可用。高可用性解決方案通常可防止特定情況發生,例如:服務器故障、單個組件故障、依賴性故障、可變負載增加和網絡分離,這些情況取決於網絡上不可達的系統組件。
- 災難恢復 (DR)—災難恢復涉及一套策略和過程,以便在發生自然或人爲災難後恢復或繼續重要的基礎架構和系統。災難恢復解決了系統中許多不同的故障原因,其中高可用性通常佔可預測的少數。災難恢復的重點是在事件發生後重新建立服務,而不僅僅是故障轉移。系統恢復包括以下情況:重新啓動服務或系統、從備份恢復配置文件或數據庫。
必要的 HA 和 DR 基礎結構元素
- 分散式方法— IQ Bot 除了叢集相關的資料中心元件外,我們也建議您部署 IQ Bot 在多部實體及 / 或虛擬伺服器上。
-
負載平衡—由負載平衡器執行,這是在多個服務器之間分配應用程序或網絡通信的過程,以保護服務活動並允許在多個服務器之間分配工作負載。如此可確保bot活動持續在叢集伺服器上進行。
-
數據庫—數據庫使用自己的內置故障轉移來保護數據。如此可確保資料庫資料的復原能力。
在 HA 羣集之間,配置 數據中心中主(主動)和輔助(被動)羣集 MS SQL 服務器之間的同步複製。如此可確保資料庫節點故障時能保持一致性。
對於所需的 HA 同步複寫,請設定下列其中一項:
- 將副本備份到 SQL Server 的同步提交模式始終處於 可用性組中
- SQL 與 [伺服器資料庫對應]
- 在 DR 站點之間,配置數據庫以提供 從 主(生產) DR 站點到輔助(恢復) DR 站點的異步複製,該站點與主 DR 站點在不同地理位置。
範例情境
將相同叢集中的所有 IQ Bot 實例指向相同資料庫和存放庫檔案。這是啟用跨多個伺服器共用資料的必要項目,並確保 IQ Bot叢集中的伺服器之間的資料完整性得以維護。
HA 和 DR 部署模式
爲確保 IQ Bot 受 HA 和(或) DR 保護,請根據中所述的部署模型配置數據中心:
HA 實作需求
- 在多部伺服器上安裝 IQ Bot。
- IQ Bot 存取是透過負載平衡器。
- 開啟 IQ Bot 伺服器之間的 RabbitMQ 同步連接埠。
- 在高可用性模式下設定 Microsoft SQL Server。
安裝 HA 和 DR 組態需求
- IQ Bot 安裝程序不直接支持羣集安裝。要設置羣集,請執行以下操作:
- 在每個應用程式伺服器節點上執行安裝程式。
- 使用
訪問角色
Everyone 共享輸出文件夾
。 - 安裝後,使用
適當的命令行參數執行 messagequeue_cluster_configuration.bat 。
- 在高可用性組態中設定 IQ Bot。
- 打開防火牆端口:4369 和 25672。
- 在叢集中的每個 IQ Bot 節點上安裝 RabbitMQ。
IQ Bot 安裝的第一個節點將成爲主 RabbitMQ 節點。主節點的主機名用於配置 RabbitMQ 羣集。
- 需要有負載平衡器,才能將流量分發到所有 IQ Bot 伺服器節點。
- 配置 Microsoft SQL Server 高可用性。使用 Microsoft SQL Server “始終打開” 選項。
- 對於 RabbitMQ 具體安裝,請參閱 RabbitMQ 文件。
HA 和 DR 已知限制
- 爲了發現 IQ Bot 實例的可用性,負載平衡器會定期發送 ping 、嘗試連接或發送測試 IQ Bot 實例的請求。這些測試稱爲運行狀況檢查。
- 運作狀況檢查不會驗證 RabbitMQ 實例的可用性。