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

负载均衡选项

Azure 负载均衡器
Azure Front Door
Azure 应用程序网关
Azure 流量管理器

术语“负载均衡”是指在多个计算资源之间分配工作负载。 负载均衡旨在优化资源使用、最大化吞吐量、最小化响应时间并避免重载任何单个资源。 它还可以通过跨冗余计算资源共享工作负荷来提高可用性。

Azure 提供多种工作负载服务,可用于在多个计算资源之间分配工作负载。 这些资源包括 Azure 应用程序网关、Azure Front Door、Azure 负载均衡器,以及 Azure 流量管理器。

本文介绍确定适合工作负载需求的负载均衡解决方案的一些注意事项。

服务分类

Azure 负载均衡服务可以按照两个维度进行分类:全局与区域,以及 HTTP(S) 与非 HTTP(S)。

全局与区域

  • 全局:此类负载均衡服务跨区域后端、云或混合本地服务分发流量。 这些服务支持管理单个控制平面,该平面负责将最终用户流量全局路由到可用后端。 它们经常对服务可靠性或性能的变化做出反应,以最大程度地提高可用性和性能。 可以将它们视为在跨不同区域/地域托管的应用程序标记、终结点或缩放单元之间实现负载均衡的系统。
  • 区域:此类负载均衡服务将流量分布在某个区域内虚拟网络中的虚拟机 (VM) 上或区域终结点和区域冗余服务终结点上。 你可以将它们视为在虚拟网络中的区域内的 VM、容器或群集之间实现负载均衡的系统。

HTTP(S) 与非 HTTP(S)

  • HTTP(S):此类负载均衡服务是指只接受 HTTP(S) 流量的第 7 层负载均衡器。 它们适用于 Web 应用程序或其他 HTTP(S) 终结点。 其中包括 SSL 卸载、Web 应用程序防火墙、基于路径的负载均衡和会话亲和性等功能。
  • 非 HTTP(S):这些负载均衡服务是第 4 层负载均衡器,可以处理非 HTTP 流量,主要是 TCP 或 UDP 服务。

下表汇总了 Azure 负载均衡服务。

服务 全局/区域 建议的流量
Azure Front Door 全球 HTTP(S)
Azure 流量管理器 全球 非 HTTP(S)
Azure 应用程序网关 区域 HTTP(S)
Azure 负载均衡器 区域或全局 非 HTTP(S)

注意

Azure 流量管理器和 Azure 负载均衡器具有分发 HTTP(S) 流量的功能,但没有任何基于高于第 4 层的协议数据单元信息进行路由的特定功能。 它们都支持 HTTP(S) 流量,但仅在第 4 层功能级别。

Azure 负载均衡服务

以下是 Azure 中当前可用的主要负载均衡服务:

  • Azure Front Door 是为 Web 应用提供全局负载均衡和站点加速服务的应用程序分发网络。 它为应用程序提供第 7 层功能,例如 SSL 卸载、基于路径的路由、快速故障转移、缓存等,以提高应用程序的性能和高可用性。

  • 是基于 DNS 的流量负载均衡器,使你能够以最佳方式将流量分发给全球 Azure 区域的服务,同时提供高可用性和响应能力。 由于流量管理器是基于 DNS 的负载均衡服务,因此它仅在域级别进行负载均衡。 因此,它无法像 Azure Front Door 一样快速进行故障转移,因为存在 DNS 缓存和系统不采用 DNS TTL 的常见挑战。

  • 应用程序网关以服务形式提供应用程序传递控制器,提供各种第 7 层负载均衡功能和 Web 应用程序防火墙功能。 使用它可以从公共网络空间过渡到某个区域内的专用网络空间中托管的 Web 服务器。

  • 负载均衡器是适用于所有 UDP 和 TCP 协议的高性能、超低延迟第 4 层负载均衡服务(入站和出站)。 它构建用于处理每秒数百万个请求,同时确保解决方案高度可用。 负载均衡器是区域冗余的,可确保整个可用性区域的高可用性。 它同时支持区域部署拓扑和跨区域拓扑

注意

群集技术(如 Azure 容器应用或 Azure Kubernetes 服务)包含负载均衡构造,这些构造主要在自己的群集边界范围内运行,根据就绪情况和运行状况探测将流量路由到可用应用程序实例。 本文未介绍这些负载均衡选项。

Azure 中负载均衡的决策树

在选择负载均衡解决方案时,请考虑以下因素:

  • 流量类型:是否是 Web HTTP(S) 应用程序? 它是面向公众的应用程序还是专用应用程序?
  • 全局与区域:你是需要对单个虚拟网络内的 VM 或容器进行负载均衡,还是需要在多个区域之间实现缩放单元/部署的负载均衡,还是两者都需要?
  • 可用性服务级别协议是什么?
  • 成本:有关详细信息,请参阅 Azure 定价。 除了服务本身的成本,还要考虑管理在该服务上构建的解决方案的操作成本。
  • 功能和限制:每个服务支持哪些功能,以及每个服务的服务限制是什么?

![提示] Azure 门户提供了一个类似于以下流程图的基于问卷的指南。 在 Azure 门户中,搜索“负载均衡 - 帮我选择”。 通过回答这些问题,可以缩小负载均衡选项的范围。

以下流程图可帮助你为应用程序选择负载均衡解决方案。 该流程图将引导你创建一组关键决策条件用于访问建议。

请将此流程图视为起点。 每个应用程序有独特的要求,因此请将该建议作为起点。 然后执行更详细的评估。

当工作负载涉及多个需要负载均衡的服务时,必须单独评估每个服务。 在许多情况下,有效的设置使用多种类型的负载均衡解决方案。 可以在工作负载体系结构的不同位置合并这些解决方案,每个解决方案都具有独特的功能或角色。

显示 Azure 中负载均衡的决策树的示意图。

定义

  • Web 应用程序 (HTTP/HTTPS):这是指需要为第 7 层数据(如 URL 路径)做出路由决策的能力,支持对通信有效负载(如 HTTP 请求正文)的检查,或处理 TLS 功能。

  • 面向 Internet 的应用程序: 可从 Internet 公开访问的应用程序。 最佳做法是,应用程序所有者应用限制性访问策略或通过设置 Web 应用程序防火墙和 DDoS 防护等产品/服务来保护应用程序。

  • 全局/部署在多个区域中:如果这个负载均衡器应该有一个单一的、高度可用的控制平面,负责将流量路由到全局分布式应用程序上的公共终结点。 这可以支持跨区域的主动-主动拓扑或主动-被动拓扑。

    注意

    可以使用区域服务(例如应用程序网关)跨多个区域的后端进行负载均衡,并通过单个控制平面控制路由。 该体系结构可以使用跨区域专用链接、全局虚拟网络对等互连,甚至其他区域中的公共服务 IP 实现。

    然而,此方案并不是这个决定的主要着眼点。

    使用区域资源作为全局分布式后端的路由器会引入区域单点故障,并导致额外的延迟,因为流量在进入另一个区域之前被迫通过一个区域,然后再返回。

  • 平台即服务 (PaaS):提供托管的承载环境,可在其中部署应用程序而无需管理 VM 或网络资源。 在本例中,PaaS 是指在区域内提供集成负载均衡的服务。 有关详细信息,请参阅选择计算服务 - 可伸缩性

  • Azure Kubernetes 服务 (AKS):使你能够部署和管理容器化应用程序。 AKS 提供无服务器 Kubernetes(一种整合的持续集成和持续交付体验)以及企业级安全性和管理。 有关 AKS 体系结构资源的详细信息,请参阅 Azure Kubernetes 服务体系结构设计

  • 基础结构即服务 (IaaS):这是一种计算选项,可以在其中预配所需的虚拟机以及关联的网络和存储组件。 IaaS 应用程序需要使用 Azure 负载均衡器在虚拟网络中进行内部负载均衡。

  • 应用层处理:是指虚拟网络中的特殊路由。 例如,虚拟网络内跨 VM 或虚拟机规模集的基于路径的路由。 有关详细信息,请参阅何时应在 Azure Front Door 后面部署应用程序网关?

  • 性能加速:是指加速 Web 访问的功能。 这可以通过使用内容分发网络 (CDN) 或优化的接入点入口来实现,以便客户端加速加入目标网络。 Azure Front Door 支持 CDNAnycast 流量加速。 无论体系结构中具有或不具有应用程序网关,都可以获取这两个功能的优势。

其他注意事项

每个负载均衡服务还具有需要考虑的功能支持或实现详细信息。 以下是一些可能与负载均衡方案相关的示例。

  • Web Sockets 支持
  • HTTP/2 支持(接收和继续访问后端节点)
  • 粘滞会话支持
  • 后端节点运行状况监视机制
  • 客户端体验或不正常节点检测与从路由逻辑中删除之间的延迟。

示例

下表列出了基于用作解决方案的负载均衡服务的各种文章。

服务 项目 说明
负载均衡器 跨可用区域对虚拟机 (VM) 进行负载均衡 跨可用区域对 VM 进行负载均衡有助于在整个数据中心发生故障或服务中断(这种情况很少见)时保护应用和数据。 使用区域冗余时,一个或多个可用性区域可能会发生故障,而数据路径可以幸存,但前提是该区域中有一个局部区域保持正常。
Azure Front Door 使用低成本无服务器 Azure 服务实时共享位置 使用 Azure Front Door 为应用程序提供与部署到单个区域相比更高的可用性。 如果区域性故障影响主要区域,可以使用 Azure Front Door 来故障转移到次要区域。
流量管理器 可实现高可用性和灾难恢复的多层 Web 应用程序 部署为高可用性和灾难恢复而生成的可复原多层应用程序。 如果主要区域变得不可用,则流量管理器将故障转移到次要区域。
Azure Front Door + 应用程序网关 Azure 上的多租户 SaaS 使用包含 Azure Front Door 和应用程序网关组合的多租户解决方案。 Azure Front Door 可帮助不同区域的流量达到负载均衡。 应用程序网关:将应用程序内部的流量进行负载均衡并路由到满足客户端业务需求的各种服务。
流量管理器 + 负载均衡器 多区域 N 层应用程序 多区域 N 层应用程序使用流量管理器将传入请求路由到主要地区。 如果该区域变得不可用,则流量管理器将故障转移到次要区域。
流量管理器 + 应用程序网关 使用流量管理器和应用程序网关实现多区域负载均衡 了解如何在多个 Azure 区域中为 Web 工作负载提供服务并部署可复原多层应用程序,以实现高可用性和可靠的灾难恢复基础结构。

后续步骤