Azure Cosmos DB for PostgreSQL 中的可用性区域服务中断复原能力
适用对象: Azure Cosmos DB for PostgreSQL(由 PostgreSQL 的 Citus 数据库扩展提供支持)
许多 Azure 区域都包含可用性区域。 可用性区域 (AZ) 是一个区域内的数据中心的分隔组。 可用性区域足够近,能够与区域中的其他可用性区域建立低延迟连接。 采用高性能网络进行连接,往返延迟小于 2 毫秒。
同时,可用性区域之间不能相距过近,以减少多个可用性区域受当地停电或天气影响的可能性。 各可用性区域具有独立的电源、冷却和连网基础结构。 根据设计,如果一个区域遇到服务中断,那么区域服务将由各 Azure 服务中的其余区域提供支持。
Azure Cosmos DB for PostgreSQL 支持可用性区域以提高可靠性和灾难恢复能力。 可用性区域的优点因是否在 Azure Cosmos DB for PostgreSQL 群集上启用了高可用性而异。
区域服务组件的可用性区域服务中断复原能力
每个受支持的 Azure 区域中都有许多 Azure Cosmos DB for PostgreSQL 服务组件,这些组件不属于单个群集,而是运行托管服务的关键部分。 这些组件允许持续执行所有管理操作(如预配新的群集和缩放现有群集)和所有内部操作(如监视节点运行状况)。
当 Azure 区域支持可用性区域时,所有这些服务组件都将配置为 AZ 冗余。 这意味着所有 Azure Cosmos DB for PostgreSQL 服务组件都能够经受住一个 AZ 的服务中断,或者换句话说,针对单个 AZ 的服务中断是具有复原能力的。
无论群集是否配置了高可用性,其后续操作都将取决于这些服务组件。 服务组件的 AZ 冗余是 Azure Cosmos DB for PostgreSQL 中可用性区域服务中断复原能力的关键元素。
可用性区域服务中断对具有和不具有高可用性的群集的影响
群集中的所有节点都预配到一个可用性区域中。 首选 AZ 设置允许将所有群集节点置于部署应用程序的同一可用性区域中。 通过将所有节点都置于同一 AZ 中,可确保节点之间的延迟较低,从而提高整体群集性能。
如果在群集上启用了高可用性 (HA),所有主节点都将在一个 AZ 中创建,所有备用节点都将预配到另一个 AZ 中。 节点可以在以下事件期间在可用性区域之间移动:
- 启用了 HA 的主节点上发生故障。 在这种情况下,主节点的备用节点将成为新的主节点,备用节点的 AZ 将成为该主节点的新 AZ。
- 群集上发生计划性维护事件。 在维护结束时,群集中的所有主节点将位于同一 AZ 中。
如果启用了高可用性,则群集将在 AZ 服务中断期间继续可用,并在受影响 AZ 中的这些主节点上进行可能的故障转移。 如果未在群集上启用高可用性,则只有部署了相应节点的 AZ 中的服务中断才会影响群集可用性。
你始终可以使用 Azure 门户或使用编程方法(例如 REST API)检查每个主节点的可用性区域。
若要获得可用性区域的复原优势,群集需要位于这样一个 Azure 区域中:其中配置了 Azure Cosmos DB for PostgreSQL,以便在发生 AZ 服务中断时可以复原。
后续步骤
- 查看在 Azure Cosmos DB for PostgreSQL 中为实现 AZ 服务中断复原能力而配置的区域
- 了解 Azure 中的可用性区域
- 了解如何在群集中启用高可用性