你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure 事件网格和事件网格命名空间的可靠性
本文详细介绍了事件网格和事件网格命名空间区域复原能力,包括可用性区域和跨区域灾难恢复和业务连续性。
有关 Azure 可靠性的体系结构概述,请参阅《Azure 可靠性》。
可用性区域支持
Azure 可用性区域是每个 Azure 地区内的至少三个在物理上独立的数据中心组。 每个区域中的数据中心都配备了独立的电源、冷却系统和网络基础结构。 在本地区域发生故障的情况下,设计可用性区域,以便一个区域受到影响时,其余两个区域支持区域服务、容量和高可用性。
故障范围包括软件和硬件故障,以及地震、洪水和火灾等事件。 容错是通过 Azure 服务的冗余和逻辑隔离来实现的。 有关 Azure 中可用性区域的详细信息,请参阅地区和可用性区域。
已启用 Azure 可用性区域的服务旨在提供适当级别的可靠性和灵活性。 可以通过两种方式进行相关配置。 可以采用区域冗余配置,实现跨区域自动复制,也可以采用区域性配置,将实例固定到特定区域。 还可以将这些方法结合。 有关区域式与区域冗余体系结构的详细信息,请参阅有关使用可用性区域和地区的建议。
主题、系统主题、域、事件订阅和事件数据的事件网格资源定义在三个可用性区域之间自动复制。 当某个可用性区域发生区域级故障时,事件网格资源会自动故障转移到另一个可用性区域,无需人工干预。 目前无法控制(启用或禁用)此功能。 当现有区域开始支持可用性区域时,现有事件网格资源会自动故障转移以利用此功能。 客户无需执行任何操作。
Azure 事件网格命名空间还可以使用可用性区域实现区域内高可用性。
先决条件
若要获得可用性区域支持,事件网格资源必须位于支持可用性区域的 Azure 区域中。 若要查看哪些区域支持可用性区域,请参阅支持的区域列表。
定价
由于事件网格在支持可用性区域的 Azure 区域中自动支持可用性区域,因此价格没有变化。
创建启用可用性区域的资源
由于事件网格在支持可用性区域的 Azure 区域中自动支持可用性区域,因此无需设置配置。
迁移到可用性区域支持
如果将事件网格资源重定位到支持可用性区域的 Azure 区域,你将自动获得可用性区域支持。 若要了解如何将资源重定位到支持可用性区域的另一个 Azure 区域,请参阅以下内容:
跨区域灾难恢复和业务连续性
灾难恢复 (DR) 是指从会导致故障时间和数据丢失的高影响事件(例如自然灾害或部署失败)中恢复。 不管灾难的原因是什么,最好的补救措施就是一个定义全面且经过测试的 DR 计划,以及一个主动支持 DR 的应用程序设计。 在开始考虑创建灾难恢复计划之前,请参阅设计灾难恢复策略的建议。
在 DR 方面,Microsoft 使用责任共担模型。 在共担责任模型中,Microsoft 会确保基线基础结构和平台服务可用。 同时,许多 Azure 服务不会自动复制数据,也不会从失败区域回退以交叉复制到另一个启用的区域。 对于这些服务,你负责设置适用于工作负载的灾难恢复计划。 大多数在 Azure 平台即服务 (PaaS) 产品/服务上运行的服务都提供支持 DR 的功能和指导,你可以使用特定于服务的功能来支持快速恢复,从而帮助制定 DR 计划。
灾难恢复通常涉及到创建备份资源,以防止在区域不正常时发生中断。 在此过程中,工作负载中需要 Azure 事件网格资源的主要区域和次要区域。
在严重丧失应用程序功能后,可以通过不同的方法予以恢复。 本文将描述一个清单,你需要遵循该清单来准备客户端,以便在由于资源或区域运行不正常而导致故障后能够予以恢复。
事件网格支持在服务器端进行手动和自动异地灾难恢复 (GeoDR)。 如果希望更好地控制故障转移过程,仍然可以实现客户端灾难恢复逻辑。 有关自动 GeoDR 的详细信息,请参阅 Azure 事件网格中的服务器端异地灾难恢复。 如需详细了解如何实现客户端灾难恢复,请参阅 Azure 事件网格中的客户端故障转移实现。
下表说明了事件网格中的客户端故障转移和异地灾难恢复支持。
事件网格资源 | 客户端故障转移支持 | 异地灾难恢复 (GeoDR) 支持 |
---|---|---|
自定义主题 | 支持 | 跨地理位置/区域 |
系统主题 | 不支持 | 自动启用 |
域 | 支持 | 跨地理位置/区域 |
合作伙伴命名空间 | 支持 | 不支持 |
命名空间 | 支持 | 不支持 |
事件网格命名空间
事件网格命名空间不支持跨区域 DR。 但可以通过创建主要命名空间和辅助命名空间,借助客户端故障转移实现来实现跨区域高可用性。
使用客户端故障转移实现,可以:
实现自定义(手动或自动化)过程,以在主要区域和次要区域之间复制命名空间、客户端标识和其他配置,包括 CA 证书、客户端组、主题空间、权限绑定、路由。
通过对终结点执行健康状况检查,实现为客户端提供主要终结点和辅助终结点的委托代办服务。 该委托代办服务可以是可使用 DNS 重定向技术(例如使用 Azure 流量管理器)复制并保持可访问状态的 Web 应用程序。
可以通过复制元数据并在命名空间之间均衡负载来实现主动-主动 DR 解决方案。 可以通过复制元数据以保持辅助命名空间处于就绪状态来实现主动-被动 DR 解决方案,以便在主命名空间不可用时,可以将流量定向到辅助命名空间。
设置灾难恢复
对于配对区域,事件网格提供将发布流量故障转移到自定义主题、系统主题和域的配对区域这一功能。 在后台,事件网格会自动将主题、系统主题、域和事件订阅的资源定义同步到配对区域。 但是,事件数据不会复制到配对区域。 在正常状态下,事件存储在为该资源选择的区域中。 发生区域中断并且 Microsoft 启动故障转移时,新事件将开始流向异地配对区域,并从该区域调度,无需进行干预。 中断缓解后,从原始区域中发布和接受的事件将从该区域调度。
可以在两个故障转移选项(Microsoft 发起和客户发起的故障转移)之间进行选择。 有关如何配置这两个设置的详细步骤,请参阅配置数据驻留。
在少数情况下,Microsoft 会执行 Microsoft 发起的故障转移,以将事件网格资源从受影响的区域故障转移到对应的异地配对区域。 Microsoft 有权决定何时执行此选项。 在故障转移用户的流量之前,此机制不涉及用户同意。
可以通过更新主题或域的配置来启用此功能。 选择“跨地理位置”(默认)以启用 Microsoft 发起的故障转移。
客户发起的故障转移由 Azure 事件网格主题和域的自定义灾难恢复计划定义,Microsoft 不会将任何类型的任何数据复制到另一个区域。 虽然此故障转移选项需要更多的工作量,但它可实现更快的故障转移,而且你还能够控制次要区域的选择。 若要为 Azure 事件网格主题实现客户端灾难恢复,请参阅为 Azure 事件网格主题构建自己的客户端灾难恢复。
以下是你可能想要禁用 Microsoft 发起的故障转移功能的几个原因:
- Microsoft 发起的故障转移是尽最大努力完成的。
- 某些地理位置对可能无法满足组织的数据驻留要求。
可以通过更新主题或域的配置来启用此功能。 选择“区域”。
如果使用非配对区域,则无论选择的数据驻留配置如何,元数据都将仅在区域中复制。
灾难恢复故障转移体验
可以用两个指标来衡量灾难恢复:恢复点目标 (RPO) 和恢复时间目标 (RTO)。
事件网格的自动故障转移针对元数据(主题、域、事件订阅)和数据(事件)具有不同的 RPO 和 RTO。 如果所需的规范不同于下述规范,仍可以使用主题运行状况 API 实现你自己的客户端故障转移。
恢复点目标 (RPO)
元数据 RPO:0 分钟。 对于适用的资源,在创建/更新/删除资源时,资源定义将同步复制到异地对。 发生故障转移时,不会丢失任何元数据。
数据 RPO:发生故障转移时,将从配对区域处理新数据。 受影响区域的中断得到缓解后,将从该区域调度未处理的事件。 如果区域恢复所需的时间比事件上设置的生存时间值长,则可能会删除数据。 若要减少这种数据丢失,我们建议为事件订阅设置死信目标。 如果受影响的区域丢失且不可恢复,则会出现一些数据丢失。 在理想情况下,订阅服务器能够与发布速率保持同步,仅丢失几秒钟的数据。 最糟糕的情况是,订阅服务器未主动处理事件,并且最长生存时间为 24 小时,则数据丢失可能长达 24 小时。
恢复时间目标 (RTO)
元数据 RTO:故障转移决策基于配对区域中的可用容量等因素,可以持续 60 分钟或更长时间。 启动故障转移后,在 5 分钟内,事件网格将开始接受主题和订阅的创建/更新/删除调用。
数据 RTO:与上述信息相同。
重要
- 在服务器端灾难恢复的情况下,如果配对区域没有可用于承担额外流量的额外容量,则事件网格无法启动故障转移。 恢复是尽最大努力完成的。
- 使用此功能不会产生费用。
- 合作伙伴命名空间和合作伙伴主题不支持异地灾难恢复。