你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用适用于表的 Azure Cosmos DB 设置 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 全局分发数据

    单击图中的区域可以添加或删除区域

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

选择全局数据库区域

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

  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 配置全局分发