概念回顾:混合负载均衡、全局服务器负载均衡、DNS 负载均衡、云负载均衡

原文作者:NGINX

原文链接:概念回顾:混合负载均衡、全局服务器负载均衡、DNS 负载均衡、云负载均衡

转载来源:NGINX 开源社区


NGINX 唯一中文官方社区 ,尽在nginx.org.cn

负载均衡位于服务器的前面,负责将客户端请求路由到所有能够满足这些请求的服务器,同时最大限度地提高速度和容量利用率,并确保无任何服务器过载,以免出现性能下降。

阅读本文,了解几种不同的负载均衡的区别与联系:混合负载均衡、全局服务器负载均衡、DNS 负载均衡以及云负载均衡。

什么是混合负载均衡?

**混合负载均衡(Hybrid load balancing)**是指将客户端请求分配到一组运行再在各种环境(本地、私有云及公有云)中的服务器应用中。混合负载均衡能够最大限度地提高任何位置的内容交付的可靠性、速度及成本效益,从而提供最佳的用户体验。

如今,许多企业正将应用从本地服务器迁移到公有云,以获得一系列优势,例如降低成本和根据需求轻松扩展。但整个迁移通常无法在一夜之间完成,而且云环境并不适合所有应用,因此企业往往必须管理本地和云应用组合。

例如,企业可能会使用其内部 IT 团队在本地安装和管理的 Outlook 电子邮件服务器,但将客户信息存储在基于云的 CRM(如 Salesforce.com )中,并将其电子商务存储托管在亚马逊云科技(AWS)。借助混合负载均衡解决方案,用户可通过单一入口点访问应用,负载均衡器在不同的位置识别和分发流量。

投资私有云的企业面临着更加复杂的情况,因为他们需要在三个资源位置之间实现负载均衡。与公有云一样,私有云是云厂商异地托管的虚拟数据中心。私有云与公有云的不同之处在于,它能够保证提供专用存储和计算能力,不与云厂商的其他客户共享。

借助混合负载均衡解决方案,企业可以无缝地在本地服务器、私有云及公有云之间分发流量,以便每个请求均可通过最适合的资源完成。负载均衡决策可基于以下因素:

  • 位置 --- 公有云资源几乎总是分布在不同地理位置,跨国公司的本地和私有云资源也是如此。将用户连接到最近的服务器可减少网络延迟,并有助于交付本地化内容(例如,使用服务器所在国家/地区的语言编写的文本)。

  • 请求类型 --- 混合负载均衡解决方案可将对不同类型的内容(视频、图像或应用数据,例如定价和库存信息)的请求转发到托管此类内容的服务器。使用专用服务器(可针对所提供的内容进行优化)无需在每个位置复制相同的内容。

  • 业务价值 --- 来自具有重要战略意义的客户或可能创造收入的请求可以直接定向到专用服务器,以实现最快、最可靠的交付,而较低价值的请求则可定向到成本较低的资源。

  • 安全性 --- 企业可将敏感数据托管在私有云或本地,从而保持对该敏感数据的最大控制,同时将不受限制的数据存储在公有云中,以节省成本。

  • 成本 --- 专用资源和云资源之间的混合负载均衡支持企业以最经济高效的方式为用户提供最佳的体验。

硬件与软件负载均衡

传统的负载均衡解决方案依赖数据中心内的专有硬件,而且采购、维护及升级成本可能相当高。基于软件的负载均衡器能够以更低的成本提供基于硬件的解决方案的性能和可靠性,因为它们在商用硬件上运行。

大多数企业都遵循最佳实践,并将负载均衡器与所负载均衡的资源部署在同一环境中:将数据中心中运行的应用放在本地,将云托管的应用放在云端。云基础设施厂商通常不允许在其环境中使用客户硬件或专有硬件,因此在本地部署硬件负载均衡器的企业仍必须使用软件负载均衡器来利用云资源。

这就需要 IT 人员了解并维护两种不同的负载均衡解决方案。而 NGINX 和 NGINX Plus 等基于软件的负载均衡解决方案既可部署在本地也可部署在云端,有助于降低运营复杂性和成本并缩短开发和部署应用所需的时间。

什么是全局服务器负载均衡?

全局服务器负载均衡 (GSLB) 是指在多个地理位置的服务器资源之间智能分发流量。这些服务器既可位于公司自己的数据中心本地,也可托管在私有云或公有云中。

灾备是许多企业在多个位置部署服务器资源的主要原因。在最常见的配置中,数据由一个 active 位置提供,在一个或多个备用(passive)位置复制备份 --- 这些被动站点仅在主动站点发生故障时才会提供数据。在这种情况下,全局服务器负载均衡器的作用是检测主动站点的故障并自动将请求转至备用站点。

选择 active-passive 模式的一个主要原因是无需跨站点实时同步数据;采用更简单的批处理方法和更经济的带外连接,即可将 active 站点的数据变更分发到 passive 站点。如果您需要维护多个提供相同内容的 active 站点(下列一些 GSLB 优势只有在您进行有效维护时才会显现),那么实时同步站点就变得十分重要。

全局服务器负载均衡的优势包括:

  • 可靠性和可用性 --- 在发生服务器或网络中断时,GSLB 可用于提高网站可靠性和可用性。例如,如果暴风雪后美国东北部发生停电,则负载均衡器可将流量从这些地区托管的服务器资源转出到该国其他地区托管的服务器资源。

  • 性能 --- 从更靠近请求用户的服务器交付内容能够最大限度地减少网络延迟和网络问题发生几率。例如,将来自澳大利亚用户的请求定向到位于悉尼的服务器,而非位于纽约的服务器,可将数据包的单程传输距离缩短约 10,000 英里(16,000 千米)。

  • 满足监管和安全要求 --- 对于国防、电信及医疗等许多监管严格的行业,全局服务器负载均衡支持网络架构师以符合政府法规的方式为全球用户群提供服务。例如,可将全局服务器负载均衡器配置为只有当请求来自加拿大用户而非其他国家(地区)的用户时,才可将其转发到加拿大的数据中心。

  • 交付本地化内容 --- 借助有关用户地理位置的信息,全局服务器负载均衡器可以将请求转发到托管特定内容的服务器,这些内容与用户所在国家(地区)有关,并使用本国语言编写。

什么是 DNS 负载均衡?

DNS 负载均衡是指在域名系统 (DNS) 中配置域名,以便将客户端对域名的请求分发给一组服务器计算机。一个域名可以对应一个网站、一个邮件系统、一台打印服务器或可通过互联网访问的其他服务。

DNS 是互联网的"电话簿":它将 www.abc.com 等域名(相当于电话簿中的个人姓名或企业名称)映射到 172.16.205.3 等互联网协议 (IP) 地址(相当于电话号码)。在互联网上发送或接收数据的每台设备都有一个唯一的 IP 地址,可供互联网的路由软件和硬件用于识别并定位设备。DNS 支持用户通过名称访问网站,对于大多数人而言,这比记住 IP 地址中的数字串容易得多。

在最简单的部署中,单台计算机为某个域托管并提供数据;当客户端请求解析域名时,DNS 将返回单台服务的 IP 地址。如今,许多域都使用多台服务器计算机,因为需要防范服务器故障或处理高流量等问题。在这种情况下,DNS 收到名称解析请求时会返回所有服务器的 IP 地址列表。

DNS 负载均衡的工作原理

大多数客户端使用收到的第一个 IP 地址作为域名解析结果,DNS 负载均衡利用了这一点。在大多数 Linux 发行版中,DNS 默认在每次响应新的客户端时均使用轮询方式按照不同的顺序发送 IP 地址列表。因此,不同的客户端将其请求定向到不同的服务器,从而在服务器组之间高效分配负载。

然而,这种简单的 DNS 负载均衡实现存在固有问题,影响了其可靠性和效率。最重要的是,DNS 不会检查服务器或网络中断或错误,因此即使服务器崩溃或无法访问,它也始终根据域名返回对应的同一组 IP 地址。

还有另一个问题。解析的地址通常会被中间 DNS 服务器(称为"解析器")和客户端缓存以提高性能并减少网络上的 DNS 流量。每个解析的地址都分配一个有效期(称为"生命周期"或"TTL"),较长的生命周期意味着客户端可能无法及时了解服务器组的变更,而较短的生命周期虽然能够提高准确性,但会导致处理开销和 DNS 流量的增加 --- 这是缓存原本要减轻的问题。

什么是云负载均衡?

云负载均衡是指将客户端请求分发到在云环境中运行的多个应用服务器。与其他形式的负载均衡一样,云负载均衡能够最大限度地提高应用的性能和可靠性;相比本地资源的传统负载均衡,其优势(通常)是成本更低,并可以轻松地根据需求来扩展或收缩应用。

如今,越来越多的企业(尤其是小型企业)都在云中运行各种应用。企业可能会使用基于云的 CRM(如 Salesforce.com)存储客户信息,使用基于云的 ERP 系统跟踪产品数据,使用网络托管厂商(如 Google)托管网站,并使用 Amazon Elastic Compute Cloud (EC2) 运行少量定制的应用。

推荐的作法是将负载均衡器服务器与所负载均衡的资源部署在同一环境中。因此,当某个公司的大部分计算基础架构都托管在云中时,在云中运行负载均衡器也是很有必要的。

硬件与软件负载均衡

传统的负载均衡解决方案依赖数据中心内的专有硬件,并且需要一支经验丰富的 IT 团队来进行系统的安装、调整和维护。只有拥有大量 IT 预算的大公司才能受益于改进的性能和可靠性。在云计算时代,基于硬件的解决方案还有一个严重缺陷,那就是它们不支持云负载均衡,因为云基础架构厂商通常不允许在其环境中使用客户的硬件或专有硬件。

幸运的是,基于软件的负载均衡器能够以更低的成本提供基于硬件解决方案的性能和可靠性优势。由于它们在商用硬件上运行,即使是小公司也能够负担得起。它们可以像其他任何软件应用一样在云中运行,是云负载均衡的理想之选。

云负载均衡的优势

云负载均衡的优势主要体现在云本身的可扩展性和全局性上。

在云端扩展的便捷性和速度意味着,企业只需在一组应用实例前放置一个可根据需求快速自动扩展的云负载均衡器,即可轻松处理流量峰值(如"双十一"的流量),并且不会降低性能。

在全球多个云中心托管应用的能力可以提高可靠性。举例来说,如果美国东北部在遭受暴风雪袭击后发生停电,云负载均衡器可以将流量从该地区托管的云资源引导到在该国其他地区托管的资源。


NGINX 唯一中文官方社区 ,尽在 nginx.org.cn

更多 NGINX 相关的技术干货、互动问答、系列课程、活动资源: 开源社区官网 | 微信公众号