0Pricing
Azure Fundamentals · 课时

多区域主主架构

使用 Azure Traffic Manager 将 Web 应用分布到两个 Azure 区域的主主配置中,并将用户路由到最近的正常运行终结点。

多区域主主架构 是 CoddyKit 上的免费 Azure Fundamentals 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Azure Fundamentals 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Azure Fundamentals 课程共包含 4 节课。

超越单一区域

即使使用了可用性区域,部署在单个 Azure 区域中的工作负载仍可能受到区域性中断的影响。这种情况虽然罕见,但可能由重大灾害、严重风暴或大规模基础设施故障引起。为实现最高级别的可用性,企业会跨两个或更多 Azure 区域部署工作负载,即使整个区域离线,应用程序仍可继续为用户提供服务。

主动-主动与主动-被动

多区域架构主要有两种模式:

  • 主动-主动 — 两个区域中的资源同时处理实时流量。这种模式可最大限度地提高可用性,还可以通过将用户路由到最近的区域来降低延迟。
  • 主动-被动 — 次要区域中的资源处于待机状态,只有在发生故障转移后才接收流量。这种模式成本更低,但恢复时间更长。

若要实现最高可用性,建议采用主动-主动模式。

Azure Traffic Manager 概述

Azure Traffic Manager 是一种基于 DNS 的全局负载均衡器,可在不同 Azure 区域(或本地环境)的终结点之间分配流量。它使用运行状况探测监视每个终结点,并使用路由方法(性能、加权、优先级、地理位置、多值)决定将流量发送到何处。对于主动-主动设置,请使用性能路由方法,将用户发送到距离最近且运行正常的区域。

# Create a Traffic Manager profile:
az network traffic-manager profile create \
  --resource-group myRG \
  --name myTMProfile \
  --routing-method Performance \
  --unique-dns-name myapp-global

# Add endpoints for each region:
az network traffic-manager endpoint create \
  --resource-group myRG \
  --profile-name myTMProfile \
  --name eastus-endpoint \
  --type azureEndpoints \
  --target-resource-id /subscriptions/.../publicIPAddresses/eastus-pip

Traffic Manager 路由方法

Traffic Manager 支持多种针对不同场景的路由方法:

  • 性能 — 将流量路由到延迟最低的终结点(最适合主动-主动模式)
  • 加权 — 按权重百分比分配流量(适用于逐步推出)
  • 优先级 — 将所有流量发送到主要终结点,发生故障时备用到次要终结点(主动-被动模式)
  • 地理位置 — 根据用户的地理位置进行路由(数据主权)

跨区域数据复制

在主动-主动架构中,必须在区域之间复制数据,这样任一区域中的用户都能读取一致的数据。可选方案包括:

  • 具有异地复制功能的 Azure SQL Database — 在另一个区域提供可读的次要副本
  • 支持多区域写入的 Azure Cosmos DB — 所有区域可同时接受写入
  • 具有 GRS 的 Azure Storage — 异步复制到次要区域

具体选择取决于您对一致性和写入可用性的要求。

用于多区域写入的 Cosmos DB

Azure Cosmos DB 非常适合主动-主动架构,因为它支持多区域写入,所有已配置的区域都可以同时接受写入操作。Cosmos DB 使用可配置的一致性级别(从强一致性到最终一致性)来管理副本的同步方式。对于主动-主动场景,通常选择会话一致性或有界过时,以平衡性能和正确性。

# Enable multi-region writes on a Cosmos DB account:
az cosmosdb update \
  --resource-group myRG \
  --name myCosmosAccount \
  --enable-multiple-write-locations true

Front Door 与 Traffic Manager

Traffic Manager 和 Azure Front Door 都提供全局负载均衡,但工作层级不同:

  • Traffic Manager 基于 DNS:它会将客户端重定向到正确的区域终结点,但连接会直接到达该终结点。它在 DNS 层运行。
  • Azure Front Door 是一种任播代理:它在全球接入点终止客户端连接,然后将请求转发到源站。除路由外,它还提供 WAF、SSL 卸载和缓存功能。

区域对意识

Microsoft 会为每个 Azure 区域指定区域对,其中的次要区域位于同一地理范围内,并且地理位置足够遥远,能够抵御区域性灾害。在设计多区域架构时,请尽可能将配对区域用作次要区域。在计划内平台维护期间,区域对中的两个区域不会同时更新,从而减少同时中断的影响。

# View Azure region pairs:
az account list-locations --query '[].{Name:name,Pair:metadata.pairedRegion[0].name}' --output table

主动-主动模式下的会话状态

在主动-主动部署中,同一用户的不同请求可能由不同区域提供服务。如果应用程序将会话状态存储在 Web 服务器内存中,用户切换区域时就会出现问题。解决方案是使用分布式会话存储,例如支持异地复制的 Azure Cache for Redis,使任意区域都能访问会话数据。

主动-主动模式的成本考量

主动-主动架构比单区域部署更昂贵,因为您需要在至少两个区域运行一份完整的基础设施副本。其他成本包括区域间数据传输、数据库异地复制,以及 Traffic Manager 或 Front Door 的费用。请进行成本效益分析:对于任务关键型工作负载,停机成本通常远高于第二个区域的成本。

测试多区域故障转移

必须定期测试主动-主动架构,以确保在需要时能够正常工作。Azure Chaos Studio 等混沌工程工具可以注入故障,例如停止某个区域中的所有 VM,并观察系统的响应方式。定期测试可以确认 Traffic Manager 的运行状况探测能够检测到故障、故障转移能在您的 RTO 内完成,并且数据在各区域之间保持一致。

快速检查

请测试您对本课程中 Microsoft Azure Fundamentals (AZ-900) 概念的理解。

课程回顾

在本课程中,您学习了:主动-主动架构会同时在多个区域部署实时资源,以实现最高可用性;Azure Traffic Manager 使用性能、优先级、加权或地理位置方法路由流量;数据复制(Cosmos DB 多区域写入、SQL 异地复制)对于确保跨区域一致性至关重要。接下来,我们将学习运行状况探测和优雅降级模式。

常见问题解答

「多区域主主架构」课时是免费的吗?

是的 — 「多区域主主架构」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Azure Fundamentals 课程的其余内容,请升级到 CoddyKit PRO。 Azure Fundamentals 课程共包含 4 节课。

「多区域主主架构」这节课中我会学到什么?

使用 Azure Traffic Manager 将 Web 应用分布到两个 Azure 区域的主主配置中,并将用户路由到最近的正常运行终结点。 你通过在浏览器中直接运行的动手代码来练习 Azure Fundamentals,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Azure Fundamentals 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Azure Fundamentals 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「多区域主主架构」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Azure Fundamentals 课中编写并运行代码吗?

能。每节 Azure Fundamentals 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. Azure SLA 与复合 SLA
  2. 可用性集与可用性区域
  3. 多区域主主架构
  4. 运行状况探测与优雅降级
← 返回 Azure Fundamentals