术语“负载均衡”是指在多个计算资源之间分配工作负载。 负载均衡旨在优化资源使用、最大化吞吐量、最小化响应时间并避免重载任何单个资源。 它还可以通过跨冗余计算资源共享工作负荷来提高可用性。
Azure 提供多种工作负载服务,可用于在多个计算资源之间分配工作负载。 这些资源包括 Azure 应用程序网关、Azure Front Door、Azure 负载均衡器,以及 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):此类负载均衡服务可以处理非 HTTP(S) 流量,建议用于非 Web 工作负载。
下表汇总了 Azure 负载均衡服务。
服务 | 全局/区域 | 建议的流量 |
---|---|---|
Azure Front Door | 全球 | HTTP(S) |
Azure 流量管理器 | 全球 | 非 HTTP(S) |
Azure 应用程序网关 | 区域 | HTTP(S) |
Azure 负载均衡器 | 区域或全局 | 非 HTTP(S) |
Azure 负载均衡服务
以下是 Azure 中当前可用的主要负载均衡服务:
Azure Front Door 是为 Web 应用提供全局负载均衡和站点加速服务的应用程序分发网络。 它为应用程序提供第 7 层功能,例如 SSL 卸载、基于路径的路由、快速故障转移、缓存等,以提高应用程序的性能和高可用性。
备注
目前,Azure Front Door 不支持 Web 套接字。
是基于 DNS 的流量负载均衡器,使你能够以最佳方式将流量分发给全球 Azure 区域的服务,同时提供高可用性和响应能力。 由于流量管理器是基于 DNS 的负载均衡服务,因此它仅在域级别进行负载均衡。 因此,它无法像 Azure Front Door 一样快速进行故障转移,因为存在 DNS 缓存和系统不采用 DNS TTL 的常见挑战。
应用程序网关提供应用程序交付控制器服务,以提供各种第 7 层负载均衡功能。 可以用它将 CPU 密集型 SSL 终止卸载到应用程序网关,优化 Web 场工作效率。
负载均衡器是适用于所有 UDP 和 TCP 协议的高性能、超低延迟第 4 层负载均衡服务(入站和出站)。 它构建用于处理每秒数百万个请求,同时确保解决方案高度可用。 负载均衡器是区域冗余的,可确保整个可用性区域的高可用性。 它同时支持区域部署拓扑和跨区域拓扑。
使用 Azure 门户选择负载均衡解决方案
你可以根据业务需要使用 Azure 门户中的“负载均衡”页来帮助选择合适的负载均衡解决方案。 负载均衡器包含下一部分中工作流中介绍的决策查询。
登录 Azure 门户。
在门户顶部的“搜索资源、服务和文档”框中,输入“负载均衡”。 当搜索结果中出现“负载均衡”时,请选择它。
注意
要了解选择负载均衡解决方案时考虑的一些因素,请参阅本文中的 Azure 中负载均衡决策树。
在“负载均衡 - 帮助我选择(预览版)”页面中,使用以下选项之一:
参考体系结构示例
下表列出了基于用作解决方案的负载均衡服务的各种体系结构参考文章。
服务 | 项目 | 说明 |
---|---|---|
负载均衡器 | 跨可用区域对虚拟机 (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 工作负载提供服务并部署可复原多层应用程序,以实现高可用性和可靠的灾难恢复基础结构。 |
Azure 中负载均衡的决策树
选择负载均衡选项时,在“负载均衡”页上选择“帮助我选择”默认选项卡时,请考虑以下因素:
- 流量类型:是 Web (HTTP/HTTPS) 应用程序吗? 它是面向公众的应用程序还是专用应用程序?
- 全局与区域:你是需要对虚拟网络内的 VM 或容器进行负载均衡,还是需要在多个区域之间实现缩放单元/部署的负载均衡,还是两者都需要?
- 可用性:服务级别协议是什么?
- 成本:有关详细信息,请参阅 Azure 定价。 除了服务本身的成本,还要考虑管理在该服务上构建的解决方案的操作成本。
- 功能和限制:每项服务的总体限制有哪些? 有关详细信息,请参阅服务限制。
以下流程图可帮助你为应用程序选择负载均衡解决方案。 该流程图将引导你创建一组关键决策条件用于访问建议。
请将此流程图视为起点。 每个应用程序有独特的要求,因此请将该建议作为起点。 然后执行更详细的评估。
如果应用程序包括多个工作负荷,请单独评估每个工作负荷。 完整的解决方案可能合并了两个或两个以上的负载均衡解决方案。
定义
- Internet 面向:可从 Internet 公开访问的应用程序。 最佳做法是,应用程序所有者应用限制性访问策略或通过设置 Web 应用程序防火墙和 DDoS 防护等产品/服务来保护应用程序。
- 全局:最终用户或客户端位于较小的地理区域之外。 例如,遍布多个大洲、一个大洲内的国家/地区,甚至较大国家/地区内的多个大都市区域的用户。
- 平台即服务 (PaaS):提供托管的承载环境,可在其中部署应用程序而无需管理 VM 或网络资源。 在本例中,PaaS 是指在区域内提供集成负载均衡的服务。 有关详细信息,请参阅选择计算服务 - 可伸缩性。
- Azure Kubernetes 服务 (AKS):使你能够部署和管理容器化应用程序。 AKS 提供无服务器 Kubernetes(一种整合的持续集成和持续交付体验)以及企业级安全性和管理。 有关 AKS 体系结构资源的详细信息,请参阅 Azure Kubernetes 服务体系结构设计。
- 基础结构即服务:一种计算选项,可以在其中预配所需的 VM 以及关联的网络和存储组件。 IaaS 应用程序需要使用 Azure 负载均衡器在虚拟网络中进行内部负载均衡。
- 应用层处理:是指虚拟网络中的特殊路由。 例如,虚拟网络内跨 VM 或虚拟机规模集的基于路径的路由。 有关详细信息,请参阅何时应在 Azure Front Door 后面部署应用程序网关?。
- 性能加速:是指加速 Web 访问的功能。 这可以通过使用内容分发网络 (CDN) 或优化的接入点入口来实现,以便客户端加速加入目标网络。 Azure Front Door 支持 CDN 和 Anycast 流量加速。 无论体系结构中具有或不具有应用程序网关,都可以获取这两个功能的优势。