Azure DocumentDB 中高可用性(HA)和跨区域复制的最佳做法

确保高可用性和启用跨区域复制对于使用 Azure DocumentDB 的任务关键型应用程序至关重要。 本文档概述了配置和管理高可用性 (HA)跨区域复制的最佳做法。 按照本文档中的指导,在 Azure DocumentDB 中实现最佳性能、复原能力和灾难恢复功能。

高可用性 (HA) 最佳做法

将 HA 用于生产群集

启用高可用性 (HA) 对于生产群集和任何对停机时间敏感的群集至关重要。 在生产环境中,意外的节点故障可能会导致重大中断。 即使其中一个物理分片(节点)不可用,HA 也能确保群集保持可用并正常运行,且不会丢失数据。

使用 HA 实现 99.99% SLA

Azure DocumentDB 为启用了高可用性的群集提供 99.99% 每月可用性 SLA 。 为满足此 SLA,请确保为所有需要持续可用的关键工作负载启用高可用性(HA)。

启用 HA 以实现自动故障转移

已启用高可用性的集群在物理分片发生故障时会自动恢复,无需手动干预。 发生节点故障时,系统会升级备用物理分片以替换故障的主节点。 自动故障转移过程保留相同的连接字符串,让故障转移过程对应用程序无缝透明。 此功能对于需要持续运行和一致的数据访问的应用程序至关重要。

为非生产集群禁用 HA

对于非生产群集或对停机不敏感的群集,可以禁用高可用性来降低成本。 这些环境可以容许偶尔停机而不会影响业务运营。 在禁用任何群集上的 HA 之前,请仔细评估风险和成本权衡。

将 HA 用于可用性区域

在支持可用性区域的区域中,启用 HA 可确保在不同的可用性区域中预配每个主-备用物理分片对。 区域冗余可保护群集免受区域中数据中心级故障的影响,从而提供额外的复原能力。

跨区域复制最佳做法

使用跨区域复制进行灾难恢复

当需要将群集数据的副本存储在另一个 Azure 区域中以实现灾难恢复 (DR) 目的时,请使用跨区域复制。 跨区域复制可确保即使在发生区域性服务中断时也能使用数据。 Azure DocumentDB 支持主动-被动复制配置,以促进跨区域灾难恢复。 主动-被动复制将一个群集保留为读写模式中的主群集,并在另一个 Azure 区域中维护一个只读副本群集。

如果发生罕见的区域中断,则可以将副本群集升级为新的读写群集,中断时间极短。 即使整个区域都遭遇服务中断,此功能也能确保数据仍然安全且可访问。

配置复制,将性能影响降至最低

配置跨区域复制时,请考虑网络延迟和写入延迟对应用程序的影响。 为主要读写群集和副本群集选择在地理位置上靠近用户的区域,并确保优化应用程序以实现最终一致性。

读取缩放比例

使用跨区域复制将大型读取操作从主群集卸载到副本群集。 将读取操作卸载到副本群集可防止主群集过载,并确保系统能够高效地处理大批量读取。

HA 和 DR 组合策略

将高可用性 (HA) 与跨区域复制相结合,以实现灾难恢复 (DR) 和全球读取可伸缩性。 两者的组合提供 99.995% SLA。 此方法在本地复原能力和全局冗余之间提供最佳平衡,确保应用程序的持续可用性和最佳性能。

故障转移模式最佳做法

Azure DocumentDB 支持三种跨区域故障转移模式。 选择最适合恢复目标的模式。

为关键任务工作负载启用由服务管理的故障转移

对于需要从区域性中断中自动恢复的工作负载,请在主群集上启用 服务托管故障转移。 该服务可检测区域性中断,并在不进行操作员干预的情况下提升副本。 由于故障转移是计划外的,因此在服务中断开始时,任何尚未复制到辅助区域的写入数据都可能会丢失。 将服务托管故障转移与 区域内高可用性 结合使用,以防范分片级和区域级故障。

对计划内的区域切换使用平滑提升

如果您可以选择时机(例如,在计划内维护、永久区域迁移或灾难恢复演练期间),请使用 平滑提升。 正常升级在切换写入角色之前等待复制清空,因此操作完成时不会丢失任何数据。 在复制队列排空期间,需预留短暂的写入不可用时间。

使用强制提升实现完全控制

当您需要明确控制计划外故障转移的时机时,例如主区域无法访问且未启用由服务管理的故障转移,请使用 强制提升。 与服务托管的故障转移一样,强制升级可能会导致数据丢失,因为复制滞后。

合并故障转移模式

由服务管理的故障转移和平滑提升并非互斥。 启用服务托管的故障转移并不妨碍您为计划内维护触发平滑提升。 将由服务管理的故障切换用作发生中断时的安全保障,并对所有可计划的操作采用平滑提升。

最佳做法摘要

Scenario 建议
生产群集 启用高可用性
需要 99.99% SLA 的群集 启用高可用性
需要 99.995% SLA 的群集 启用高可用性创建副本群集
非生产群集 禁用高可用性以降低成本
分片失败的自动故障转移 启用高可用性
区域性中断的自动故障转移 启用由服务管理的故障转移
跨区域灾难恢复 (DR) 创建副本群集
计划的区域切换,不会丢失任何数据 触发平滑提升
跨多个区域的读取扩展性 创建副本群集

通过遵循这些最佳做法,可以确保 Azure DocumentDB 群集在故障和区域性中断时保持高可用性和复原能力。