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

Azure 服务总线的可靠性

Azure 服务总线是一项完全托管的企业消息代理服务,它提供可靠的异步消息传送功能来分离应用程序和服务。 服务总线支持用于点到点通信的队列以及用于发布-订阅消息传送模式的主题和订阅。 该服务提供内置的可靠性功能,包括消息持久性、至少一次传送保证和死信队列,以处理失败的消息处理。

使用 Azure 时, 可靠性是共同的责任。 Microsoft提供了一系列功能来支持复原和恢复。 你负责了解这些功能如何在你使用的所有服务中工作,并选择满足业务目标和运行时间目标所需的功能。

本文介绍如何使服务总线能够灵活应对各种潜在的中断和问题,包括暂时性故障、可用性区域中断和区域中断。 它还重点介绍了有关服务总线服务级别协议(SLA)的一些关键信息。

生产部署建议

Azure Well-Architected Framework 提供了关于可靠性、性能、安全性、成本和操作的建议。 若要了解这些领域如何相互影响并有助于可靠的应用服务解决方案,请参阅 Azure Well-Architected Framework 中 Azure 服务总线的体系结构最佳做法

可靠性体系结构概述

本部分介绍从可靠性的角度来看,服务工作原理最相关的一些重要方面。 本部分介绍逻辑体系结构,其中包括部署和使用的某些资源和功能。 它还讨论了物理架构,该架构提供了服务内部运作方式的详细信息。

逻辑体系结构

命名空间充当服务总线的管理容器,可配置为使用基本层、标准层或高级层。 在命名空间级别配置服务时,可以通过分配容量、配置网络安全以及启用地理复制和地理灾难恢复。

在命名空间中,部署队列和主题,这些 队列主题是具有不同语义的消息传送实体。 有关详细信息,请参阅服务总线队列、主题和订阅

可以选择在命名空间上配置 分区 ,该分区将队列和主题分散到多个消息中转站和消息存储中。 命名空间可以使用多个分区来执行并行处理和水平缩放。 服务总线仅保证单个分区内的排序。 分区在应用程序的可靠性设计中起着关键作用。 设计应用程序时,在最大化可用性和一致性之间进行权衡。 对于高级层, 可以在命名空间上启用分区。 对于基本层和标准层命名空间,可以在实体上配置分区,并在 发送消息时根据需要配置分区。

可以使用服务总线及其异步设计方法来提高应用程序的可用性。 有关详细信息,请参阅 异步消息传送模式和高可用性

物理体系结构

服务总线提供基础计算和存储资源。 对于每个命名空间,多个 消息中转站 处理消息,多个 消息存储 存储消息。 消息存储有三个副本:一个主副本和两个辅助副本。 服务总线使所有这三个副本保持同步,以用于数据和管理操作。 如果主副本发生故障,则可将其中一个辅助副本提升为主副本,而不会产生故障时间。

对于使用“基本”或“标准”层的命名空间,服务总线通过共享的多租户基础结构提供冗余,该基础结构可在可用可用性区域中自动复制消息。 该服务维护多个消息存储器,并确保所有副本在数据和管理操作上保持同步。

对于 高级层命名空间,服务总线提供专用的消息传送单元,每个消息传送单元都有专用的 CPU 和内存资源。 高级层命名空间可以根据工作负荷需求自动缩放。 有关详细信息,请参阅 Azure 服务总线命名空间的自动更新消息传送单元

服务总线基础结构跨多个物理计算机和机架,这些计算机和机架分布在容错域中,从而降低影响命名空间的灾难性故障的风险。 在具有可用性区域的区域中,基础结构 跨不同的物理数据中心扩展。 该服务实现了透明的故障检测和故障转移机制,使其能够在保证的服务级别内继续运行,并且在发生此类故障时通常不会出现明显的中断。

暂时性故障的复原能力

暂时性故障是指组件发生短暂的间歇性故障。 这些故障经常出现在云之类的分布式环境中,在运营过程中比较常见。 暂时性故障在短时间内自行纠正。 应用程序通常可以通过重试受影响的请求来处理暂时性故障,这一点很重要。

与任何云托管的 API、数据库和其他组件通信时,所有云托管的应用程序都应遵循 Azure 暂时性故障处理指南。 有关详细信息,请参阅 处理暂时性故障的建议

Azure 服务总线 SDK 包含自动重试逻辑,其中对于因网络超时或临时服务不可用等暂时性原因导致的操作失败,会使用指数退避策略。 当应用程序遇到与服务总线的暂时性断开连接时,SDK 会自动尝试使用配置的重试策略重新连接。

若要优化应用程序中的暂时性故障处理,请使用最新的服务总线 SDK,其中包括最新的重试逻辑和连接管理功能。 有关详细信息,请参阅 适用于 .NET 的 Azure 服务总线客户端库

应对可用区故障的弹性

可用性区域 是在物理上彼此独立的数据中心群组,位于同一个 Azure 区域内。 当某个区域发生故障时,服务可以切换到其他可用的区域。

服务总线支持所有服务层级的区域冗余部署。 在受支持的区域中创建服务总线命名空间时,会自动启用区域冗余,无需额外付费。 区域冗余部署模型适用于所有服务总线功能,包括分区和会话。

服务总线以透明方式跨区域中的多个可用性区域复制配置、元数据和消息数据。 区域冗余提供自动故障转移,无需用户进行任何干预。 所有服务总线组件(包括计算、网络和存储)都会跨区域复制。 服务总线拥有足够的容量储备,可以立即应对区域完全丢失的情况。 即使整个可用性区域变得不可用,服务总线也会继续运行,而不会丢失数据或中断消息传送应用程序。

显示区域冗余服务总线命名空间的示意图。

要求

  • 区域支持: 区域冗余服务总线命名空间可以部署到 支持可用性区域的 Azure 区域。 在受支持的区域中创建命名空间时,服务总线会自动启用可用性区域支持,无需其他配置。

  • 层:所有服务总线层(基本、标准和高级)都支持可用性区域,无其他要求。

注意事项

服务总线命名空间包括一个 zoneRedundant 属性。 以前,需要此属性才能启用可用性区域,但此行为已更改,并且 zoneRedundant 属性已弃用。 即使启用了区域冗余,此属性仍可能显示 false 。 具有可用性区域的区域中的所有命名空间都区域冗余。

成本

服务总线中的区域冗余不会增加额外的成本。

配置可用性区域支持

受支持的区域中部署时,服务总线命名空间会自动支持区域冗余。 无需进一步配置。

所有区域正常时的行为

本部分介绍在为区域冗余配置服务总线命名空间以及所有可用性区域正常运行时的预期情况。

  • 区域之间的流量路由。 服务总线使用主动-主动模型,其中消息分布在多个可用性区域。 客户端连接会跨区域自动负载均衡,服务无论区域如何,都会将操作路由到可用的消息传送基础设施。

  • 区域之间的数据复制。 服务总线在可用性区域之间使用同步复制,包括元数据和消息数据。 消息存储的多个副本必须确认写入操作才能被视为完成,从而确保在正常操作期间跨区域的数据一致性。

区域故障期间的行为

本节介绍在配置服务总线命名空间以实现区域冗余时以及出现可用性区域中断时,预计会出现什么情况。

  • 检测和响应:Microsoft 可自动检测区域故障,并启动故障转移到正常区域。 区域级故障转移不需要客户采取任何行动。
  • 通知:当区域关闭时,Microsoft不会自动通知你。 但是,可以使用 Azure 服务运行状况 来了解服务的总体运行状况,包括任何区域故障,并且可以设置 服务运行状况警报 来通知问题。
  • 活动请求:在区域故障期间,服务总线可能会删除活动请求。 如果客户在短时间内重试,以适当处理暂时性故障,通常可以避免重大影响。

  • 预期数据丢失:由于服务总线在确认之前跨区域同步复制消息,因此在发生区域故障期间不会发生数据丢失。

  • 预期的停机时间:区域故障可能会导致几秒钟的停机时间。 如果客户在短时间内重试,以适当处理暂时性故障,通常可以避免重大影响。

  • 流量重新路由:服务总线检测到区域丢失后,会自动将新请求重定向到某个正常的可用性区域中的另一个副本。

    服务总线 SDK 通常以透明方式处理连接管理和重试逻辑。

区域恢复

当可用性区域恢复时,服务总线会自动将区域重新集成到活动服务拓扑中。 恢复的区域开始接受新连接,并与其他区域一起处理消息。 在服务中断期间复制到幸存区域的数据保持不变,所有区域中的正常同步复制都会恢复。 无需采取任何措施进行区域恢复和重新集成。

针对局部区域故障进行测试

服务总线管理区域故障的流量路由、故障转移和区域恢复,因此无需验证可用性区域故障过程或提供进一步的输入。

对区域范围的故障的复原能力

服务总线提供两种类型的多区域支持,这两种支持都需要高级层命名空间:

  • Geo-Replication(预览版) 提供主要区域和次要区域之间的元数据和消息数据的主动-被动复制。 对于需要保持对区域中断复原且对消息数据丢失的容忍度较低的大多数应用程序,请使用 Geo-Replication。

  • 元数据异地灾难恢复在主要区域和次要区域之间提供配置和元数据的主动-被动复制,但不会复制消息数据。 对于能够自行处理数据复制或不需要数据复制的应用程序,可以考虑使用异地灾难恢复。

异地复制和元数据异地灾难恢复都需要手动启动故障转移或将次要区域升级为新的主要区域。 即使主区域不可用,Microsoft 也不会自动执行故障转移或升级操作。

基本层和标准层中的命名空间不包括内置的多区域功能,但可以通过在不同区域使用多个命名空间来实现应用级别的复制模式。 有关详细信息,请参阅下文的自定义多区域解决方案以增强复原能力

Geo-Replication

高级层支持 Geo-Replication(预览版)。 此功能复制命名空间的元数据(如实体、配置和属性)和数据(例如队列和主题中的消息,以及消息属性和状态)。 您为命名空间的配置和数据设置复制方法。 此功能可确保消息在另一个区域中保持可用状态,并允许在需要时切换到次要区域。

重要

此功能目前以公共预览版提供,因此不应在生产方案中使用。

在需要对区域故障具备弹性并对消息数据丢失容忍度较低的场景中,请使用 Geo-Replication。

命名空间实质上跨区域扩展。 一个区域充当主要区域,另一个区域充当次要区域。 您的 Azure 订阅显示单个命名空间。

显示配置了地理复制的服务总线命名空间的图表。

可以随时将次要区域 提升 为主要区域。 升级次要区域时,服务总线会将命名空间的完全限定域名(FQDN)重新指向所选次要区域,并将以前的主要区域降级到次要区域。 你决定是执行 计划的升级,这意味着你等待数据复制完成,还是 强制升级,这可能会导致数据丢失。

注释

服务总线异地复制会用到升级一词,因为该词最能体现将次要区域升级为主要区域(之后将主要区域降级为次要区域)的过程。 还可能会出现用于描述常规过程的术语“故障转移”

本部分总结了异地复制的重要方面。 查看完整的文档以了解其工作原理。 有关详细信息,请参阅 服务总线异地复制

要求

  • 区域支持: 可以选择支持服务总线作为主要区域或次要区域的任何 Azure 区域。 无需使用 Azure 配对区域,因此可以根据延迟、符合性或数据驻留要求选择次要区域。

  • 层: 若要启用异地复制,命名空间必须使用高级层。

  • 元数据异地灾难恢复:无法将命名空间配置为同时使用异地复制和异地灾难恢复。

注意事项

  • 功能限制: 启用异地复制时,存在一些限制。 有关详细信息,请参阅 服务总线异地复制

  • 专用终结点: 如果使用专用终结点连接到命名空间,则还需要在主要区域和次要区域中配置网络。 有关详细信息,请参阅 Azure 事件中心文档中的 专用终结点

成本

若要了解异地复制的定价工作原理,请参阅 “定价”。

配置多区域支持

当所有区域都正常时的行为

本部分介绍为异地复制配置服务总线命名空间且主要区域处于运行状态时的预期情况。

  • 区域之间的流量路由: 客户端应用程序通过命名空间的 FQDN 及其流量路由连接到主要区域。

    只有在正常作期间,主要区域才会主动处理来自客户端的消息。 次要区域接收复制的消息,但在备用模式下保持被动状态。

  • 区域之间的数据复制: 主要区域和次要区域之间的数据复制行为取决于是将复制配对配置为使用同步复制还是异步复制。

    • 同步: 在写入作完成之前,消息将复制到次要区域。

      此模式可确保消息数据的安全性,因为它必须在主区域和次区域中提交。 但是,同步复制大大增加了传入消息的写入延迟。 它还要求次要区域可用于接受写入作,因此次要区域中的中断会导致写入作失败。

      • 异步: 消息被写入主要区域后,写入操作完成。 不久后,它会将消息复制到次要区域。

      此模式提供的写入吞吐量高于同步复制,因为写入作期间没有区域间复制延迟。 此外,异步复制模式可以容忍次区域的丢失,同时仍然允许在主要区域中进行写入操作。 但是,如果主要区域发生中断,则尚未复制到次要区域的任何数据都可能不可用或丢失。

      配置异步复制时,请配置复制所需的最大可接受的延迟时间。 随时可以使用 Azure Monitor 指标验证当前复制滞后时间。

      如果异步复制滞后时间超出指定的最大值,则主要区域开始限制传入请求,以便复制能够赶上。 为了避免这种情况,请务必选择地理上不太远的次要区域,并确保容量足以满足吞吐量。

      即使选择异步复制模式,某些元数据类型也会同步复制。

      有关详细信息,请参阅 复制模式

区域中断期间的行为

本部分描述在为 Geo-Replication 配置服务总线命名空间后,当主要区域或次要区域发生中断时,可以预期的情况。

  • 检测和响应: 你负责决定何时将命名空间的次要区域提升为新的主要区域。 即使发生区域中断,Microsoft也不会为你做出此决定或启动该过程。 有关在决定是否故障转移时要考虑的建议条件,请参阅触发升级的条件

    有关如何将次要区域提升到新主要区域的详细信息,请参阅 升级流

    升级次要区域时,选择是执行 计划的升级 还是 强制升级。 计划内升级会等待辅助区域同步完成后,再接收新流量。 此方法可消除数据丢失,但会导致停机。

    在主要区域的中断期间,通常需要执行强制升级。 如果主区域可用,且你因其他原因触发升级,可选择计划内升级。

  • 活动请求: 此行为取决于区域故障是发生在主要区域还是次要区域:

    • 主要区域中断: 如果主要区域不可用,则会终止所有活动请求。 客户端应用程序应在晋级完成后重试操作。

    • 次要区域中断: 在以下情况下,次要区域中的中断可能会导致活动请求出现问题:

      • 如果使用同步复制模式,如果任何次要区域不可用,则主要区域无法完成写入作。

      • 如果使用异步复制模式,则命名空间会限制,在复制滞后时间达到所配置的最大值后不接受新消息。

      若要继续使用主要区域中的命名空间,请从 Geo-Replication 配置中删除辅助命名空间。

  • 预期数据丢失: 数据丢失量取决于您执行的提升类型(计划的或强制的)和复制模式(同步的或异步的):

    • 计划内促销: 不会丢失任何数据。 但是,在区域中断期间,可能无法进行计划内升级,因为它要求所有主要区域和次要区域都可用。

    • 强制升级、同步复制: 不会丢失任何数据。

    • 强制升级、异步复制:对于未复制到次要区域的最新消息,以及尚未复制的状态更改,可能会遇到一些数据丢失的情况。 金额取决于复制滞后时间。 若要验证当前复制滞后时间,请使用 Azure Monitor 指标

    如果执行强制升级,即使主要区域可用,也不能恢复丢失的数据。

  • 预期的停机时间: 预期的停机时间量取决于是执行计划内升级还是强制升级:

    • 计划的推广: 计划推广的第一步是将数据复制到备用区域。 此过程通常很快完成,但在某些情况下,由于复制滞后,可能需要花费与复制滞后时间相当的时间才完成。 复制完成后,升级过程通常需要大约 5 到 10 分钟。 域名系统(DNS)服务器有时可能需要更长的时间来更新条目并完全将其记录复制到客户端。

      在整个升级过程中,主区域不接受写入操作。

      在发生区域中断期间,此选项可能无法实现,因为它要求所有主要区域和次要区域都可用。

    • 强制升级: 在强制升级期间,服务总线不会等待数据复制完成,并且会立即启动升级。 升级过程通常需要大约 5 到 10 分钟。 有时,在客户端之间完全复制和更新 DNS 条目可能需要更长的时间。

      在整个升级过程中,主区域不接受写入操作。

  • 流量重新路由: 升级完成后,命名空间的 FQDN 指向新的主要区域。 但是,此重定向取决于客户端 DNS 记录的更新速度,其中包括其 DNS 服务器是否遵循命名空间 DNS 记录的生存时间(TTL)。

区域恢复

原始主要区域恢复后,如果要将命名空间返回到其原始主要区域,请遵循相同的区域升级过程。

如果在区域中断期间执行强制升级,即使主要区域可用,也不能恢复丢失的数据。

针对区域故障进行测试

若要测试异地复制,请暂时将次要区域提升为主区域,并验证客户端应用程序是否可以在发生最小中断的情况下在区域之间切换。

监视升级持续时间并验证 Runbook 和自动化是否正常工作。 测试后,可以将系统切回到原始配置。

了解升级过程中及升级后可能遇到的潜在停机时间和数据丢失情况。 在一个非生产环境中测试地理复制,该环境镜像了生产命名空间的配置。

元数据地理灾难恢复

高级层支持元数据异地灾难恢复。 此功能可改进灾难场景下的恢复能力,包括区域发生灾难性故障的情况。 地理灾难恢复仅复制命名空间的配置和元数据。 但是,它不会复制消息数据。 为了支持灾难恢复,此功能可确保预配置另一个区域中的命名空间,并准备好立即接受来自客户端的消息。 异地灾难恢复是一种单向恢复解决方案,不支持故障恢复到之前的主要区域。

元数据地理灾难恢复非常适合那些不严格要求保留每条消息并且能容忍在灾难情况下出现一定数据丢失的应用程序。 元数据地理灾难恢复也可能适用于自行复制数据或无需数据复制的应用程序。 例如,如果你的消息呈现的是大图像,稍后会将其转换为缩略图,那么你可能会认为,如果你能够快速地在另一个区域中恢复处理新消息,并且你可以在以后重建这些消息以赶上进度,那么你可以承受在发生的故障区域中丢失一些消息的情况。

重要

地灾恢复可实现具有相同配置但不复制消息数据的业务连续性。 如果需要复制消息数据,请考虑使用 异地复制

配置元数据异地灾难恢复时,需要创建一个供客户端应用程序连接的别名。 别名是一个 FQDN,默认情况下将所有流量定向到主命名空间。

该图显示了为地理灾难恢复配置的两个服务总线命名空间。

如果主要区域发生故障或发生其他类型的灾难,可以随时手动启动从主要区域到次要区域的单向故障转移。 可以选择执行安全故障转移,该选项会等待复制完成后再切换到次要区域,但可能无法在区域中断期间使用。 故障转移一旦开始,几乎立即就能完成。 在故障转移过程中,异地灾难恢复别名会重新指向辅助命名空间,且配对关系会被移除。

本章节总结了地质灾害恢复的重要方面。 查看完整的文档以了解其工作原理。 有关详细信息,请参阅 服务总线地理灾难恢复

要求

  • 区域支持: 可以选择任何支持服务总线作为主要命名空间或辅助命名空间的 Azure 区域。 无需使用 Azure 配对区域,因此可以根据延迟、符合性或数据驻留要求选择次要区域。

  • 层: 若要启用元数据地理灾难恢复,这两个命名空间都必须使用高级层。

  • 分区: 无法将分区命名空间与非分区命名空间配对。

  • 元数据地理容灾恢复: 不能将命名空间配置为同时使用地理复制和地理容灾恢复。

注意事项

  • 功能限制: 启用 Geo-Disaster 恢复时,存在一些限制。 有关详细信息,请参阅 注意事项注意事项

  • 角色分配: Microsoft Entra 主命名空间中实体的基于角色的访问控制(RBAC)分配不会复制到辅助命名空间。 在辅助命名空间中手动创建角色分配,以保护对它们的访问。

  • 应用程序设计: 在设计客户端应用程序时,地理灾难恢复需要具体的注意事项。 有关详细信息,请参阅 注意事项

  • 专用终结点: 如果使用专用终结点连接到命名空间,请在主要区域和次要区域中配置网络。 有关详细信息,请参阅专用终结点

  • 从标准迁移到高级命名空间: 如果命名空间以前位于标准层中,并且已将其迁移到高级层,则需要以不同的方式处理别名。 有关详细信息,请参阅 服务总线标准版到高级版

成本

启用元数据地理灾害恢复功能时,您需要为主命名空间和辅助命名空间付费。

配置多区域支持

  • 创建元数据地理灾难恢复配对。 若要在主要命名空间和辅助命名空间之间配置灾难恢复,请参阅 设置和故障转移流

  • 禁用元数据异地灾难恢复。 若要中断命名空间之间的配对,请参阅 设置和故障转移流程

容量计划和管理

规划多区域部署时,如果一个区域发生故障,请确保这两个区域有足够的容量来处理完整负载。 次要区域在正常运行期间保持被动状态,但故障转移后必须立即处理流量。 规划如何缩放辅助命名空间容量,以便它可以不延迟地接收生产流量。 如果在故障转移过程中可以容忍额外的停机时间,则可以选择在故障转移期间或故障转移后缩放辅助命名空间容量。 若要减少停机时间,请提前在辅助命名空间中预配容量,使其仍可接收生产负载。

当所有区域都正常时的行为

本部分介绍为异地灾难恢复配置服务总线命名空间且主要区域处于运行状态时的预期情况。

  • 区域之间的流量路由: 客户端应用程序通过命名空间的地理灾难恢复(Geo-Disaster Recovery)别名进行连接,流量路由到主要区域中的主命名空间。

    在正常作期间,只有主命名空间主动处理来自客户端的消息。 辅助命名空间在备用模式下保持被动状态,访问数据的任何请求都失败。

  • 区域之间的数据复制: 仅配置元数据在命名空间之间复制。 配置复制持续且异步。

    所有消息数据仅保留在主命名空间中,不会复制到辅助命名空间。

区域中断期间的行为

本节内容描述了在将服务总线命名空间配置为地理灾难恢复时,以及主要区域发生中断时的预期情况。

  • 检测和响应: 你负责监视区域运行状况并手动启动故障转移。 即使主要区域发生故障,Microsoft 也不会自动执行故障转移或升级次要区域。

    有关如何启动故障转移的详细信息,请参阅 故障转移流

    启动故障转移时,选择是执行 安全故障转移 还是执行标准(强制 故障转移或 手动故障转移)。 在故障转移开始之前,安全故障转移会等待复制完成再切换到次要区域。 此方法可减少元数据丢失,但会导致停机。 安全故障转移要求命名空间位于同一 Azure 订阅中。

    在主要区域发生中断时,通常需要执行强制故障转移。 如果主要区域可用,而你出于其他原因触发故障转移,则可以选择计划故障转移。

    故障转移是一项单向操作,因此之后需要重新建立异地灾难恢复配对关系。 有关详细信息,请参阅 区域恢复

  • 活动请求: 在故障转移启动时,正在进行的活动请求将终止。 客户端应用程序应在故障转移完成后重试操作。

  • 预期数据丢失:

    • 元数据: 配置和元数据通常复制到辅助命名空间。 但元数据复制是异步进行的,因此最近的更改可能不会复制,尤其是复杂的更改。 在客户端访问辅助命名空间之前验证辅助命名空间的配置。

    • 消息数据: 消息数据不会在区域之间复制。 如果主要区域出现故障,则主命名空间中的消息将变为不可用。

      除非灾难性灾难导致主要区域完全丢失,否则消息不会永久丢失。 如果区域恢复,则可以稍后从主命名空间检索消息。

  • 预计停机时间:故障转移通常在 5 到 10 分钟内完成。 客户端可能需要更长的时间才能完全复制和更新 DNS 条目。

  • 流量重新路由: 使用 Geo-Disaster Recovery 别名连接到命名空间的客户端会在故障转移后自动重定向到辅助命名空间。 但是,此重定向取决于 DNS 服务器是否如实遵循命名空间 DNS 记录的 TTL,以及客户端接收到这些已更新的 DNS 记录。

区域恢复

原始主要区域恢复后,你必须手动重新建立配对关系,并可选择执行故障恢复操作。 新建异地灾难恢复配对,将恢复的区域设为次要区域,如果想返回原始区域,请再次执行故障转移。 此过程可能会导致发送到临时主要区域的消息数据丢失。

如果灾难导致主要区域中所有区域丢失,则可能无法恢复数据。 在其他情况下,你的消息数据将在故障转移恢复之前保留在主要命名空间中。 还原访问后,可以从旧的主命名空间获取历史消息。 你负责配置应用程序以接收和处理这些消息。 Microsoft 不会自动将其还原到次要区域。

针对区域故障进行测试

若要测试你的响应流程和灾难恢复流程,可在维护时段内执行计划的故障转移。 启动从主命名空间到辅助命名空间的故障转移,并验证应用程序是否可以连接和处理来自新主命名空间的消息。

监视故障转移的持续时间,并验证 runbook 和自动化程序是否正常运作。 测试后,可以将系统切回到原始配置。

了解故障转移过程中及故障转移后可能遇到的潜在停机时间和数据丢失情况。 在一个反映生产命名空间配置的非生产环境中,测试元数据的地理灾难恢复。

用于复原的自定义多区域解决方案

异地复制和元数据异地灾难恢复能够灵活应对区域中断和其他问题,并且适用于大多数工作负载。 但是,在以下情况下,它们可能不符合你的需求:

  • 你对自定义复制或同时维护多个活动区域有要求。
  • 使用不支持这些功能的服务总线层。

在服务总线中,有一系列设计模式可以实现不同类型的多区域支持。 许多模式需要部署多个命名空间,并配置应用程序以适当地使用命名空间。 若要了解详细信息,请参阅以下文章:

服务维护期间的系统弹性能力

服务总线执行定期维护。 在计划内维护期间,命名空间将移动到包含最新更新的冗余节点。 发生此移动时,客户端 SDK 会在命名空间上自动断开连接并重新连接。 通常,升级发生在 30 秒内。 应用程序必须为维护期间可能发生的任何暂时性网络断开做好准备。

有关详细信息,请参阅 Azure 服务总线的 Azure 维护事件指南

备份和还原

服务总线不是为数据的长期存储而设计的。 通常,数据在短时间内存储在主题或队列中,然后被处理或持久化到另一个数据存储系统中,之后才会被删除。 由于此设计,服务总线会自动维护消息数据的副本,但不为消息数据提供备份和还原功能。

对于需要长期消息保留的方案,请考虑实现到 Azure 存储或其他持久存储服务的应用程序级存档。

服务级别协议

Azure 服务的服务级别协议(SLA)描述了每个服务的预期可用性,以及解决方案为实现该可用性预期而必须满足的条件。 有关详细信息,请参阅 联机服务的 SLA

服务总线为所有命名空间提供 SLA(服务水平协议)。 当命名空间满足以下所有条件时,可用性 SLA 更高:

  • 它使用高级版本。
  • 它位于具有可用性区域的区域中。
  • 它使用分区。