使用 API for Table 设置 Azure Cosmos DB 多区域分布

适用对象:

本文涵盖以下任务:

  • 使用 Azure 门户配置多区域分布
  • 使用 API for Table 配置多区域分布

使用 Azure 门户添加多区域数据库区域

Azure Cosmos DB 面向中国的所有 Azure 区域提供。 为数据库帐户选择默认的一致性级别后,可以关联一个或多个区域(具体取决于所选的默认一致性级别和多区域分布需求)。

  1. Azure 门户的左侧栏中,单击“Azure Cosmos DB”

  2. 在“Azure Cosmos DB”页中,选择要修改的数据库帐户。

  3. 在“帐户”页上的菜单中单击“全局复制数据”。

  4. 在“全局复制数据”页中,通过单击地图中的区域选择要添加或删除的区域,并单击“保存”。 添加区域会产生费用,有关详细信息,请参阅定价页使用 Azure Cosmos DB 多区域分布数据一文。

    Click the regions in the map to add or remove them

添加第二个区域后,门户中的“全局复制数据”页上会启用“手动故障转移”选项。 可以使用此选项测试故障转移过程或更改主写入区域。 添加第三个区域后,会在同一页上启用“故障转移优先级”选项,以便更改读取的故障转移顺序。

选择多区域数据库区域

配置两个或更多区域有两个常见方案:

  1. 向最终用户提供对数据的低延迟访问,而无论用户位于中国的何位置
  2. 添加区域复原以实现业务连续性和灾难恢复 (BCDR)

若要向最终用户提供低延迟,建议在与应用程序用户所在位置对应的区域中同时部署应用程序和 Azure Cosmos DB。

若要实现 BCDR,建议按照Azure 中的跨区域复制:业务连续性和灾难恢复一文中所述,根据区域对添加区域。

使用 API for Table 连接到首选区域

为了利用多区域分布,客户端应用程序应当指定其应用程序在其中运行的当前位置。 这是通过设置 CosmosExecutorConfiguration.CurrentRegion 属性实现的。 CurrentRegion 属性应当包含单个位置。 每个客户端实例都可以指定其自己的区域,以实现低延迟读取。 区域必须使用其显示名称命名,例如“中国北部”。

Azure Cosmos DB for Table SDK 将基于帐户配置和当前的区域可用性自动选取要与之通信的最佳终结点。 它优先选择最靠近的区域来使客户端实现更低的延迟。 在设置当前的 CurrentRegion 属性后,读取和写入请求将如下所述进行定向:

  • 读取请求: 所有读取请求都将发送到所配置的 CurrentRegion。 SDK 会基于邻近性自动选择回退异地复制区域以实现高可用性。

  • 写入请求: SDK 会自动将所有写入请求发送到当前写入区域。 在具有多区域写入功能的帐户中,当前区域也将为写入请求提供服务。 SDK 会基于邻近性自动选择回退异地复制区域以实现高可用性。

如果未指定 CurrentRegion 属性,则 SDK 会将当前写入区域用于所有操作。

例如,如果某个 Azure Cosmos DB 帐户位于“中国北部”和“中国北部”区域中。 如果“中国北部”是写入区域,并且应用程序位于“中国北部”。 如果未配置 CurrentRegion 属性,则所有读取和写入请求始终会定向到“中国北部”区域。 如果配置了 CurrentRegion 属性,则所有读取请求都将在“中国北部”区域中接受服务。

后续步骤

在本教程中,已完成以下内容:

  • 使用 Azure 门户配置多区域分布
  • 使用 Azure Cosmos DB 表 API 配置多区域分布