高可用性和灾难恢复概述
- Updated: 2023/11/22
高可用性 (HA) 在 IQ Bot 服务或服务器发生故障时提供故障转移机制。 灾难恢复 (DR) 在灾难导致整个数据中心发生故障时,实现跨不同地理位置的恢复。
IQ Bot 在群集中使用最少使用 3 个节点,最多使用 5 个节点,以实现高可用性 (HA)。
IQ Bot HA 和 DR 解决方案
就 IQ Bot 而言,高可用性 (HA) 和灾难恢复 (DR) 的实施可减少停机时间,并保持 bot 活动的业务连续性 (CoB)。
- 高可用性 (HA):高可用性是一种架构系统设计,尝试保护系统免受某些故障情况的影响。 这意味着,即使系统的某些部分出现故障,整体而言仍然可用。 高可用性解决方案通常可防止特定情况,例如:服务器故障、单个组件故障、依赖故障、可变负载增加以及依赖在网络上变得无法访问的系统组件的网络分割。
- 灾难恢复 (DR):灾难恢复涉及确保重要技术基础设施和系统能够在自然灾害或人为灾难后恢复或继续的一系列策略和程序。 灾难恢复可解决系统中许多不同的故障原因,其中高可用性通常占可预测的一小部分。 灾难恢复的重点是事件后重建服务,而不仅仅是故障转移。 恢复系统包括下列情况:重新启动服务或系统、从备份中恢复配置文件或数据库。
必需的 HA 和 DR 基础设施元素
- 分布式方法:除了群集 IQ Bot 和相关数据中心组件之外,我们还建议您在多个物理和/或虚拟服务器上部署 IQ Bot。
- 负载均衡:由负载均衡器执行,这是跨多个服务器分配应用程序或网络流量以保护服务活动的进程,使工作负载可以分布在多个服务器之上。 这可确保 bot 活动在群集服务器上继续。
-
数据库:数据库使用自己的内置故障转移来保护数据。 这可确保数据库数据恢复。
- 对于 HA 群集,在数据中心的主(主动)和辅助(被动)群集 Microsoft SQL Server 实例之间配置同步复制。 这可确保在数据库节点发生故障时保持一致性。
如果需要 HA 同步复制,请完成以下配置之一:
- 将副本备份到 SQL Server 始终开启可用性组的同步提交模式
- 将 SQL 备份到服务器数据库镜像
- 在 DR 站点之间,对数据库进行配置,以提供从主(正式部署)DR 站点到辅助(恢复)DR 站点(与主 DR 站点地理位置不同)的异步复制。
- 对于 HA 群集,在数据中心的主(主动)和辅助(被动)群集 Microsoft SQL Server 实例之间配置同步复制。 这可确保在数据库节点发生故障时保持一致性。
示例场景
将同一群集中的所有 IQ Bot 实例指向相同数据库和存储库文件。 这是实现跨多个服务器共享数据并确保在群集内的多个 IQ Bot 服务器之间保持数据完整性所必需的。
HA 和 DR 部署模型
要确保您的 IQ Bot 受 HA 和/或 DR 保护,请根据以下所述的部署模型配置您的数据中心:
HA 实施要求
- 在多个服务器上安装 IQ Bot。
- 通过负载均衡器访问 IQ Bot。
- 打开 IQ Bot 服务器之间的 RabbitMQ v3.8.18 同步端口。
- 以高可用性模式配置 Microsoft SQL Server。
安装 HA 和 DR 配置要求
-
IQ Bot 安装程序不直接支持群集安装。 要设置群集,请确保完成以下操作:
- 在每个应用程序服务器节点上运行安装程序。
- 使用访问角色
每个人
共享输出文件夹
。 - 安装后,使用适当的命令行参数执行
messagequeue_cluster_configuration.bat
。
- 在高可用性配置中配置 IQ Bot。
- 打开防火墙端口: 4369 和 25672。
- 在群集中的每个 IQ Bot 节点上安装 RabbitMQ v3.8.18。
主 RabbitMQ v3.8.18 节点是最先安装 IQ Bot 的节点。 主节点的主机名用于配置 RabbitMQ v3.8.18 群集。
- 要将流量分配到所有 IQ Bot 服务器节点,需要负载均衡器。
- 配置 Microsoft SQL Server 以实现高可用性。 使用 Microsoft SQL Server 始终开启选项。
- 有关 RabbitMQ v3.8.18 具体安装信息,请参阅 RabbitMQ v3.8.18 文档。
HA 和 DR 已知限制
- 为发现 IQ Bot 实例的可用性,负载均衡器会定期发送 Ping 操作、尝试连接或发送请求以测试 IQ Bot 实例。 这些测试称为运行状况检查。
- 运行状况检查不会验证 RabbitMQ v3.8.18 实例的可用性。