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

创建一个混沌试验,该试验使用服务直接故障对 Azure Cosmos DB 实例进行故障转移

可以使用混沌试验,通过在受控环境中引发一些故障,来验证应用程序是否可以应对这些故障。 本文介绍如何使用混沌试验和 Azure Chaos Studio 进行多读单写 Azure Cosmos DB 故障转移。 运行此试验可帮助你在发生故障转移事件时防范数据丢失。

可以使用这些步骤来设置和运行任何服务直接故障的试验。 服务直接故障直接针对 Azure 资源运行,无需检测。 基于代理的错误需要安装混沌代理。

先决条件

  • Azure 订阅。 如果没有 Azure 订阅,请在开始之前创建一个 Azure 免费帐户
  • 一个 Azure Cosmos DB 帐户。 如果没有 Azure Cosmos DB 帐户,请按照以下步骤 创建一个帐户。
  • 至少为 Azure Cosmos DB 帐户设置一个读取和一个写入区域。

在 Azure Cosmos DB 帐户上启用 Chaos Studio

Chaos Studio 无法针对资源注入故障,除非该资源首先添加到 Chaos Studio。 通过在资源上创建 目标和功能 ,将资源添加到 Chaos Studio。 Azure Cosmos DB 帐户只有一种目标类型(服务直接)和一项功能(故障转移)。 其他资源最多可以有两种目标类型。 一种目标类型用于服务直接故障。 另一个目标类型用于基于代理的故障。 其他资源可能具有许多其他功能。

  1. 打开 Azure 门户

  2. 在搜索栏中搜索 Chaos Studio

  3. 选择“ 目标 ”并转到 Azure Cosmos DB 帐户。

    Screenshot that shows the Targets view in the Azure portal.

  4. 选择 Azure Cosmos DB 帐户旁边的检查框。 选择“ 启用目标 ”,然后从下拉菜单中选择“ 启用服务直接目标 ”。

    Screenshot that shows enabling targets in the Azure portal.

  5. 确认列出了所需的资源。 选择“查看 + 启用”,然后选择“启用”

  6. 此时会显示一条通知,指示选择的资源已成功启用。

    Screenshot that shows a notification showing the target was successfully enabled.

现已成功将 Azure Cosmos DB 帐户添加到 Chaos Studio。 在 “目标” 视图中,还可以管理在此资源上启用的功能。 选择资源旁边的“管理操作”链接会显示为该资源启用的功能。

创建试验

现在,可以创建试验。 混沌试验定义要针对目标资源执行的操作。 操作按顺序组织并运行。 混沌试验还定义了要针对并行运行的分支执行的操作。

  1. Chaos Studio 中选择“试验 ”选项卡。 在此视图中,可以查看和管理所有混沌试验。 选择“创建”>“新建试验”。

    Screenshot that shows the Experiments view in the Azure portal.

  2. 填写要在其中部署混沌试验的“订阅”、“资源组”和“位置” 。 为试验指定一个名称。 选择“下一步: 试验设计器”。

    Screenshot that shows adding basic experiment details.

  3. 现在你正在 Chaos Studio 试验设计器中。 使用试验设计器,可以通过添加步骤、分支和故障来构建试验。 为步骤和分支提供友好名称,然后选择“添加操作>添加错误”。

    Screenshot that shows the experiment designer.

  4. 从下拉列表中选择 CosmosDB 故障转移 。 使用 Azure Cosmos DB 帐户的读取区域填充失败的分钟数和 readRegion 的持续时间。 选择“下一步: 目标资源”。

    Screenshot that shows fault properties.

  5. 选择 Azure Cosmos DB 帐户,然后选择“ 下一步”。

    Screenshot that shows adding a target.

  6. 验证试验是否正确,然后选择“查看 + 创建>”。

    Screenshot that shows reviewing and creating an experiment.

向目标资源授予试验权限

创建混沌试验时,Chaos Studio 会创建系统分配的托管标识,用于针对目标资源执行故障。 若要成功运行试验,必须向此标识提供目标资源的适当权限。 可以通过修改步骤 3 中的角色分配来匹配 该资源和目标类型的相应角色,从而对任何资源和目标类型使用这些步骤。

  1. 转到 Azure Cosmos DB 帐户并选择访问控制(IAM)。

    Screenshot that shows the Azure Cosmos DB Overview page.

  2. 选择“添加”>“添加角色分配”。

    Screenshot that shows the Access control overview.

  3. 搜索“Cosmos DB 操作员”,然后选择该角色。 选择下一步

    Screenshot that shows assigning the Azure Cosmos DB Operator role.

  4. 选择“选择成员”,然后搜索试验名称。 选择试验,然后选择“选择”。 如果同一租户中有多个具有相同名称的试验,则试验名称将被截断,并添加随机字符。

    Screenshot that shows adding an experiment to a role.

  5. 选择“审阅 + 分配>审阅 + 分配”。

运行试验

现在可以运行试验了。 若要查看效果,建议打开 Azure Cosmos DB 帐户概述,并在单独的浏览器选项卡中全局复制 数据 。试验期间定期刷新显示区域交换。

  1. “试验 ”视图中,选择试验。 选择“开始>确定”。
  2. 当状态更改为“正在运行”时,选择“历史记录最新运行的详细信息以查看正在运行的试验的详细信息。

后续步骤

现在,你已运行 Azure Cosmos DB 服务直接试验,接下来可以: