负载均衡是一个通过将网络或应用流量分布到服务器群或服务器池中多个服务器的过程。负载均衡器背后的基本理念是避免通过将客户请求或流量路由到其他可能空闲的节点来过载计算节点。网络设备或称为负载均衡器的软件位于客户端设备和后端服务器之间。这些设备负责接收和路由传入流量到可以满足请求的服务器。
负载均衡已成为企业跟上需求增长并确保其应用程序为用户正常运行的有效方式。如今的企业每分钟收到成百上千的客户请求到其网站和应用程序。在高峰季节或时间段,这种流量可能会更加激增。服务器承受着保持响应并提供高质量媒体(包括照片、视频和其他应用数据)的压力。这些应用程序的任何中断或停机都可能导致体验低下,并使用户流失,从而导致利润损失。
什么是负载均衡器?
负载均衡器是网络中的一个设备或过程,它分析传入请求并将它们分流到相关服务器。负载均衡器可以是网络中的物理设备、在专用硬件上运行的虚拟化实例(虚拟负载均衡器),甚至是一个软件过程。它还可以集成到应用交付控制器(ADCs)中——旨在一般提高应用程序性能和安全的网络设备。
为确保用户获得一致的体验,负载均衡器遵循开放系统互连(OSI)模型。OSI是一套通信功能标准,不依赖于系统的底层内部结构或技术。根据这一模型,负载均衡应在两个层面进行,以获得最佳且一致的用户体验。
第4层(L4)负载均衡器
这些负载均衡器根据它们使用的TCP或UDP端口以及它们的源和目的IP地址来决定如何路由流量数据包。L4负载均衡器不检查数据包的实际内容,而是通过一个称为网络地址转换的过程将IP地址映射到正确的服务器。
第7层(L7)负载均衡器
L7负载均衡器在应用层工作,能够检查HTTP头部、SSL会话ID和其他数据,以决定将传入请求路由到哪些服务器以及如何路由。由于它们在理解和处理客户端请求到服务器方面需要额外的上下文,L7负载均衡器在计算上比L4负载均衡器更为CPU密集,但结果也更有效。
还有一种称为全球服务器负载均衡的负载均衡类型。这扩展了L4和L7负载均衡器的功能,跨多个数据中心分配大量流量,而不会对终端用户的服务产生负面影响。这些也特别适用于处理来自分布在不同地理位置的云数据中心的应用请求。
负载均衡的简史
负载均衡在1990年代作为分布网络流量的硬件设备而崭露头角。随着互联网技术和连通性的迅速改进,Web应用变得更加复杂,它们的需求超过了单个服务器的能力。需要找到更好的方法来处理对类似资源的多个请求,并有效地在服务器之间分配这些请求。这是负载均衡器的起源。
由于负载均衡使Web应用程序避免依赖单个服务器,它也帮助这些应用程序轻松扩展,超出单个服务器所能支持的范围。很快,就演变出其他功能,包括提供持续的健康检查、基于应用内容的智能分配以及其他专业功能。
2000年代初ADCs的兴起是应用负载均衡历史上的一个重要里程碑。ADCs是为了提高应用性能而开发的网络设备,应用负载均衡成为实现这一目标的方法之一。但它们很快演变为涵盖更多应用服务,包括压缩、缓存、认证、Web应用防火墙和其他安全服务。
负载均衡与云计算
随着云计算逐渐主导应用交付,ADCs也相应地发展。从硬件设备开始,ADCs也采取了虚拟机的形式,软件从传统硬件中提取出来,甚至是纯软件负载均衡器。软件ADCs执行的任务类似于它们的硬件对应物,但也提供更多的功能和灵活性。它们允许组织在云环境中快速扩展应用服务,以满足需求高峰,同时保持安全。
负载均衡是如何工作的?
负载均衡器可以是网络中的硬件设备,也可以是纯粹的软件定义过程。无论其形式如何,它们都通过根据各种条件将网络流量分散到不同的网络服务器来工作,以防止任何一个服务器过载。
想象负载均衡器就像是交通警察,将繁忙的交通引导到较不拥挤的车道以避免拥堵。负载均衡器有效地管理着应用服务器和端点设备(如PC、笔记本电脑或平板电脑)之间信息的无缝流动。所涉及的服务器可能位于本地、数据中心或云中。没有负载均衡器,单个服务器可能会不堪重负,应用程序可能变得无响应,导致响应延迟、糟糕的用户体验和收入损失。
硬件与软件负载均衡
基于硬件的负载均衡器通过使用本地硬件和物理设备来分配网络负载。这些设备能够处理大量网络流量和高性能应用程序。硬件负载均衡器还可能包含内置虚拟化,将许多实例合并在同一设备中。
由于它们使用专门的处理器运行软件,它们提供快速的吞吐量,而且对网络或应用服务器的物理访问需求增加了安全性。然而,硬件负载均衡器的成本可能很高,因为它需要购买物理机器,并支付咨询费用来配置、编程和维护硬件。
软件负载均衡如何工作?
另一方面,基于软件的负载均衡器可以提供与硬件负载均衡器相同的好处,同时替代昂贵的硬件。它们可以在任何标准设备上运行,从而节省空间和硬件成本。软件负载均衡器提供更多的灵活性以适应变化的需求,并可以通过添加更多软件实例来帮助您扩展容量。它们还可以轻松地用于云中的负载均衡,无论是在托管的异地解决方案中还是在内部托管的混合模型中。
DNS负载均衡是一种软件定义的负载均衡方法。在这里,对域名系统(DNS)内的域的客户端请求被分布到各种服务器上。每次DNS系统响应新的客户端请求时,它发送一份不同版本的IP地址列表。这确保了DNS请求被均匀分配到不同的服务器上以处理整体负载。通过自动移除无响应的服务器,DNS负载均衡允许自动故障转移或备份到工作服务器。
负载均衡算法的不同类型
网络负载均衡器使用多种方法或技术来管理和分配负载。它们在用来确定哪个应用服务器应接收每个客户端请求的算法上有所不同。五种最常见的负载均衡方法包括:
轮询
在这种方法中,传入请求按循环顺序转发给每个服务器。当它到达最后一个服务器时,周期重新开始,从第一个开始。这是最简单的实现方法之一,但可能不是最有效的,因为它假设所有服务器的容量相似。这种方法还有两个其他变体——加权轮询和动态轮询——可以调整这种假设。
IP哈希
这是一种相对简单的负载均衡方法,其中客户端的IP地址决定了哪个服务器接收其请求。它使用算法生成一个独特的哈希键,或源IP地址和目的地IP地址的加密版本。然后使用这个键将客户端的请求分配给特定的服务器。
最少连接
在最少连接方法中,流量被引导到活动连接最少的服务器。这种方法适用于流量重的时期,有助于在所有可用服务器之间均匀分配流量。
最短响应时间
在最短响应时间方法中,流量被引导到满足两个条件的服务器:应具有最少的活动连接和最低的平均响应时间。
最小带宽
在这种方法中,负载均衡器查看过去十四秒内服务器的带宽消耗(以Mbps计)。消耗最少带宽的服务器被选择用于发送客户端请求。
负载均衡的好处
归根结底,负载均衡是帮助企业有效管理网络流量和应用负载,以便为终端用户提供可靠、一致的体验。在此过程中,负载均衡器提供以下好处。
可伸缩性以满足流量高峰
负载均衡帮助企业应对流量波动或高峰,增加或减少服务器以满足变化的需求。这有助于企业利用突然增加的客户需求增加收入。例如,电子商务网站在节日季节和促销期间可以预见网络流量的激增。能够扩展服务器容量以平衡它们的负载可能是新客户或保留客户带来销售增长与由于不满意的客户而产生的显著流失之间的区别。
冗余以最小化停机时间
网站服务器在前所未有的流量高峰期失败并不少见。但如果您可以在多个网络服务器上维护网站,则可以限制任何单个服务器停机时间可能造成的损害。负载均衡帮助您在一个服务器失败时自动转移网络负载到工作服务器,增加了一层自动化以现代化您的工作负载。您可以保持一个服务器处于活动模式以接收流量,而另一个保持在被动模式,准备在活动服务器失败时上线。这种安排给企业提供了一个保证:一台服务器始终处于活动状态以处理硬件失败的情况。
灵活性进行维护
将流量临时转移到被动服务器的能力也允许开发者灵活进行故障服务器的维护工作。您可以将所有流量指向一个服务器并设置负载均衡器处于活动模式。然后您的IT支持团队可以在被动服务器上进行软件更新和修补, 在生产环境中测试,一切正常后再将服务器切换到活动状态。
主动故障检测
负载均衡帮助企业检测服务器故障并通过将资源分配给未受影响的服务器来绕过它们。这允许您有效管理服务器,特别是如果它们分布在多个数据中心和云提供商中。这在软件负载均衡器的情况下尤其如此,它们可以使用预测分析在问题发生之前找到潜在的流量瓶颈。
DDoS攻击缓解
负载均衡器将流量分布在服务器之间的能力在防御分布式拒绝服务(DDoS)攻击时也变得有用。当单个服务器因DDoS攻击而过载时,负载均衡器通过将流量重新路由到其他服务器并减少攻击面来提供帮助。这样,负载均衡消除了单点故障,使您的网络能够抵御此类攻击。
负载均衡作为一种技术随着时间的推移不断发展,并继续成为企业提供不间断用户体验的重要方式。除了为IT团队减少停机时间和高可用性带来的好处外,负载均衡还为企业提供了扩展资源、满足客户需求和产生收入的新机会。