什么是负载平衡及其工作原理?

2021年3月22日
什么是源站

内容

免费试用 CDNetworks

我们的大多数产品都有 14 天的免费试用期。无需信用卡。

分享这个帖子

负载平衡是将网络或应用程序流量分布到服务器场或服务器池中的多个服务器的过程。负载均衡器背后的基本思想是通过将客户端请求或流量路由到其他可能空闲的节点来避免计算节点过载。位于客户端设备和后端服务器之间的称为负载平衡器的网络设备或软件。这些负责接收传入流量并将其路由到可以满足请求的服务器。

负载平衡已成为企业跟上不断增长的需求并确保其应用程序为用户正常运行的有效方式。今天的企业每分钟会收到成百上千个客户对他们的网站和应用程序的请求。在旺季或高峰时段,此流量可能会激增更多。服务器承受着跟上和响应高质量媒体(包括照片、视频和其他应用程序数据)的压力。这些应用程序的任何中断或停机都可能导致低于标准的体验并拒绝用户,从而导致利润损失。

什么是负载均衡器?

负载平衡器是网络中的一种设备或进程,它分析传入的请求并将它们转移到相关服务器。负载均衡器可以是网络中的物理设备、在专用硬件(虚拟负载均衡器)上运行的虚拟化实例,甚至是软件进程。它还可以整合到应用程序交付控制器 (ADC) 中——旨在提高应用程序性能和安全性的网络设备。

为确保用户获得一致的体验,负载均衡器遵循开放系统互连 (OSI) 模型。 OSI 是一组不依赖于底层内部结构或技术的系统通信功能标准。根据这个模型,负载平衡应该发生在两层,以获得最佳和一致的用户体验。

第 4 层 (L4) 负载均衡器

这些负载均衡器根据它们使用的 TCP 或 UDP 端口以及源和目标的 IP 地址来决定如何路由流量数据包。 L4 负载平衡器不检查数据包的实际内容,而是在称为网络地址转换的过程中将 IP 地址映射到正确的服务器。

第 7 层 (L7) 负载均衡器

L7 负载平衡器作用于应用层,能够检查 HTTP 标头、SSL 会话 ID 和其他数据,以决定将传入请求路由到哪些服务器以及如何路由。由于它们在理解和处理客户端对服务器的请求时需要额外的上下文,因此 L7 负载均衡器在计算上比 L4 负载均衡器占用更多 CPU,但因此效率更高。

还有另一种类型的负载平衡称为 全球服务器负载均衡.这扩展了跨多个数据中心的 L4 和 L7 负载平衡器的功能,以便在不对最终用户的服务产生负面影响的情况下分配大量流量。这些对于处理来自跨地域分布的云数据中心的应用程序请求也特别有用。

负载均衡简史

负载平衡在 1990 年代开始流行,因为硬件设备在网络中分配流量。随着 Internet 技术和连接性的迅速提高,Web 应用程序变得更加复杂,它们的需求超出了单个服务器的能力。需要找到更好的方法来接受对类似资源的多个请求,并在服务器之间有效地分配它们。这就是负载均衡器的起源。

由于负载平衡允许 Web 应用程序避免依赖单个服务器,它还有助于轻松扩展这些应用程序,使其超出单个服务器可以支持的范围。很快,出现了其他功能,包括提供持续健康检查的能力、基于应用程序内容的智能分发和其他专门功能。

ADC 在 2000 年代初期的兴起是应用程序负载平衡历史上的一个重要里程碑。 ADC 是为了提高应用程序性能而开发的网络设备,应用程序负载平衡成为实现这一目标的方法之一。但它们很快就会发展到涵盖更多的应用程序服务,包括压缩、缓存、身份验证、Web 应用程序防火墙和其他安全服务。

负载均衡和云计算

随着云计算慢慢开始主导应用程序交付,ADC 也随之发展。 ADC 最初是作为硬件设备起家的,后来也采用了虚拟机的形式,其中的软件是从传统硬件甚至纯软件负载均衡器中提取出来的。软件 ADC 执行的任务与其对应的硬件类似,但还提供更多功能和灵活性。它们使组织能够在云环境中快速扩展应用程序服务以满足需求高峰,同时保持安全性。

负载平衡如何工作?

负载平衡器可以采用网络中硬件设备的形式,也可以是纯软件定义的进程。无论它们以何种形式出现,它们都是通过根据各种条件将网络流量分配到不同的 Web 服务器来工作,以防止任何一台服务器过载。

将负载均衡器想象成交通警察,将繁忙的交通重定向到不太拥挤的车道以避免拥堵。负载平衡器有效地管理应用程序服务器和端点设备(如 PC、笔记本电脑或平板电脑)之间的无缝信息流。有问题的服务器可能在本地、数据中心或云端。如果没有负载均衡器,单个服务器可能会不堪重负,应用程序可能会变得无响应,从而导致响应延迟、糟糕的使用体验和收入损失。

负载均衡器工作的确切机制取决于它们是硬件设备还是软件。

硬件与软件负载平衡

基于硬件的负载均衡器通过使用本地硬件和物理设备来分配网络负载。它们能够处理大量网络流量和高性能应用程序。硬件负载平衡器还可能包含内置虚拟化,将许多实例整合到同一设备中。

由于它们使用专门的处理器来运行软件,因此它们提供了快速的吞吐量,而对网络或应用程序服务器的物理访问的需求增加了安全性。不利的一面是,硬件负载平衡器可能成本高昂,因为它需要购买物理机器并付费请顾问来配置、编程和维护硬件。

软件负载平衡如何工作?

另一方面,基于软件的负载均衡器可以提供与硬件负载均衡器相同的优势,同时取代昂贵的硬件。它们可以在任何标准设备上运行,从而节省空间和硬件成本。软件负载平衡器提供了更大的灵活性来适应不断变化的需求,并且可以帮助您通过添加更多软件实例来扩展容量。它们还可以在托管的异地解决方案或具有内部托管的混合模型中轻松用于云上的负载平衡。

DNS 负载平衡是一种软件定义的负载平衡方法。在这里,对域名系统 (DNS) 中域的客户端请求分布在各种服务器上。每次 DNS 系统响应新的客户端请求时,它都会发送不同版本的 IP 地址列表。这确保了 DNS 请求均匀分布到不同的服务器以处理整体负载。通过自动删除无响应的服务器,DNS 负载平衡允许自动故障转移或备份到工作服务器。 

不同类型的负载均衡算法

网络负载平衡器使用多种方法或技术来管理和分配负载。它们在用于确定哪个应用程序服务器应接收每个客户端请求的算法上有所不同。五种最常见的负载均衡方法是:

循环法

在此方法中,传入请求将循环转发到每个服务器。当它到达最后一个服务器时,从第一个服务器开始重复该循环。它是最简单的实施方法之一,但可能不是最有效的方法,因为它假设所有服务器都具有相似的容量。这种方法还有另外两种变体——加权循环法和动态循环法——可以针对这种假设进行调整。

IP哈希

这是一种相对简单的负载平衡方法,其中客户端的 IP 地址决定哪个服务器接收其请求。它使用算法生成唯一的散列密钥,或源和目标 IP 地址的加密版本。然后使用此密钥将客户端的请求分配给特定的服务器。

最少连接

在最少连接方法中,流量被转移到活动连接最少的服务器。这种方法非常适合流量大的情况,有助于在所有可用服务器之间平均分配流量。

最短响应时间

在最短响应时间方法中,流量被定向到满足两个条件的服务器——它应该有最少的活动连接 最低的平均响应时间。

最小带宽

在此方法中,负载均衡器查看最后 14 秒内服务器的带宽消耗(以 Mbps 为单位)。选择消耗最少带宽的一个来发送客户端请求。

负载均衡和 ddos 攻击缓解

负载平衡的好处 

归根结底,负载均衡是为了帮助企业有效地管理网络流量和应用程序负载,以便为最终用户提供可靠、一致的体验。在这样做时,负载平衡器提供以下好处。

满足流量高峰的可扩展性

负载平衡可帮助企业掌握流量波动或峰值,并增加或减少服务器以满足不断变化的需求。这有助于企业利用客户需求的突然增加来增加收入。例如,电子商务网站可能会在假期和促销期间出现网络流量高峰。扩展服务器容量以平衡其负载的能力可能是新客户或保留客户带来的销售增长与不满意客户造成的重大流失之间的区别。

冗余以最大限度地减少停机时间

在前所未有的流量高峰时期,网站服务器出现故障的情况并不少见。但是,如果您可以在多个 Web 服务器上维护网站,则可以限制任何一台服务器停机可能造成的损害。负载平衡可帮助您在网络负载发生故障时自动将网络负载转移到正常工作的服务器,从而增加一层自动化以实现工作负载的现代化。您可以将一台服务器保持在主动模式以接收流量,而另一台服务器保持被动模式,以备在主动服务器出现故障时上线。这种安排为企业提供了保证,即一台服务器将始终处于活动状态以处理硬件故障实例。

执行维护的灵活性

暂时将流量转移到无源服务器的能力还允许开发人员灵活地对故障服务器执行维护工作。您可以将所有流量指向一台服务器并将负载平衡器设置为主动模式。然后,您的 IT 支持团队可以在无源服务器上执行软件更新和补丁,在生产环境中进行测试,并在一切正常后将服务器切换为有源服务器。

主动故障检测

负载平衡可帮助企业检测服务器中断并通过将资源分配给未受影响的服务器来绕过它们。这使您可以有效地管理服务器,尤其是当它们分布在多个数据中心和云提供商之间时。在软件负载平衡器的情况下尤其如此,它可以使用预测分析来在潜在的流量瓶颈发生之前找到它们。

DDoS 攻击缓解

负载均衡器跨服务器分配流量的能力在防御分布式拒绝服务 (DDoS) 攻击方面也很有用。当单个服务器因 DDoS 攻击,负载均衡器通过将流量重新路由到其他服务器并减少攻击面来提供帮助。这样,负载平衡消除了单点故障,并使您的网络能够抵御此类攻击。

负载平衡作为一项技术随着时间的推移而发展,并将继续成为企业提供不间断用户体验的重要方式。除了为 IT 团队带来的减少停机时间和高可用性的好处之外,负载平衡还为企业提供了扩展资源、满足客户需求和创造收入的新机会。

探索更多