NLB定义
NLB全称是Network Load Balancing。即网络负载均衡。是在支持应用程序的资源池中平均分配网络流量的一种方法。现代应用程序必须同时处理数百万用户,并以快速、可靠的方式将正确的文本、视频、图像和其他数据返回给每个用户。为了处理如此高的流量,大多数应用程序都有许多资源服务器,它们之间包含很多重复数据。NLB器是位于用户与服务器组之间的设备,充当不可见的协调者,确保均等使用所有资源服务器。
NLB有哪些优势?
NLB可以定向和控制应用程序服务器与其访客或客户端之间的互联网流量。因此,它可提高应用程序的可用性、可扩展性、安全性和性能。
应用程序可用性
服务器故障或维护可能会增加应用程序停机时间,使访客无法访问您的应用程序。NLB器可以通过以下方式提高您的系统的容错能力:自动检测服务器问题并将客户端流量重定向到可用服务器。您可以使用NLB来简化以下任务:
运行应用程序服务器维护或升级而无需使应用程序停机
为备份站点提供自动灾难恢复
执行运行状况检查并防止出现可能导致停机的问题
应用程序可扩展性
您可以使用NLB器在多个服务器之间智能地定向网络流量。您的应用程序可以处理数千个客户端请求,因为NLB会执行以下操作:
防止任何一台服务器出现流量瓶颈
预测应用程序流量,以便您可以在需要时添加或移除不同服务器
为您的系统增加冗余度,使您可以放心扩展
应用程序安全
NLB器具有多项内置的安全功能,可为您的互联网应用程序的安全保驾护航。它们是应对分布式拒绝服务攻击的有用工具,在这种攻击中,攻击者会用数百万个并发请求淹没应用程序服务器,从而导致服务器故障。NLB器还可以执行以下操作:
监控流量并阻止恶意内容
将攻击流量自动重定向到多个后端服务器,以最大限度减少影响
通过一组网络防火墙路由流量,以提高安全性
应用程序性能
NLB器通过增加响应时间和减少网络延迟来提高应用程序性能。它们可以执行诸如以下几项关键任务:
在服务器之间平均分配负载以提高应用程序性能
将客户端请求重定向到地理位置较近的服务器以减少延迟
确保物理和虚拟计算资源的可靠性和性能
NLB的工作原理
公司通常在多台服务器上运行其应用程序。这种服务器安排称为服务器场。用户对应用程序的请求首先转到NLB器。然后,NLB器会将每个请求路由到服务器场中最适合处理该请求的单个服务器。
NLB就像餐厅经理所做的工作一样。考虑一家有五名服务员的餐厅。如果允许顾客选择服务员,那么一个或两个服务员可能会超负荷工作,而其他服务员则处于闲置状态。为了避免这种情况,餐厅经理将顾客分配给最适合为他们提供服务的特定服务员。
什么是NLB算法
NLB算法是一组规则,NLB器遵循这些规则来确定最适合每个不同客户端请求的服务器。NLB算法分为两个主要类别。
静态NLB
静态NLB算法遵循固定规则,与当前服务器状态无关。以下是静态NLB的示例。
循环法
服务器的 IP 地址通知客户端将请求发往何处。IP 地址是一串很难记住的长数字。为了简单起见,域名系统将网站名称映射到服务器。当您在浏览器中输入 aws.amazon.com 时,请求将首先发送到我们的名称服务器,该服务器会将我们的 IP 地址返回给您的浏览器。
在循环法中,权威性名称服务器(而不是专用硬件或软件)执行NLB。该名称服务器轮流或以循环方式返回服务器场中不同服务器的 IP 地址。
加权循环法
在加权循环NLB中,您可以根据服务器的优先级或容量为每台服务器分配不同权重。权重较高的服务器将从名称服务器接收更多的传入应用程序流量。
IP 哈希法
在 IP 哈希法中,NLB器将对客户端 IP 地址执行名为哈希的数学计算。它将客户端 IP 地址转换为数字,然后将该数字映射到各个服务器。
动态NLB
动态NLB算法将在分配流量之前检查服务器的当前状态。以下是动态NLB算法的一些示例。
最少连接法
连接是客户端与服务器之间的开放通信渠道。当客户端向服务器发送第一个请求时,客户端将进行身份验证,并在彼此之间建立活动连接。在最少连接法中,NLB器将检查哪些服务器的活动连接最少,并将流量发送到这些服务器。此方法假定所有连接均要求所有服务器具有相同处理能力。
加权最小连接法
加权最小连接算法假定某些服务器可以处理比其他服务器更多的活动连接。因此,您可以为每台服务器分配不同的权重或容量,NLB器会将新的客户端请求发送到按容量计算连接最少的服务器。
最短响应时间法
响应时间是服务器处理传入请求和发送响应所花费的总时间。最短响应时间法会将服务器响应时间与活动连接相结合,以确定最佳服务器。NLB器使用此算法来确保为所有用户提供更快的服务。
基于资源的方法
在基于资源的方法中,NLB器通过分析当前服务器负载来分配流量。称为代理的专用软件在每台服务器上运行,并计算服务器资源的使用情况,如其计算容量和内存。然后,NLB器将先检查代理是否有足够的可用资源,然后再将流量分配给该服务器。
NLB有哪些类型
我们可以将NLB分为三个主要类别,具体取决于NLB器为了重定向流量而检查客户端请求中的哪些内容。
应用程序NLB
复杂的现代应用程序拥有多个服务器场,其中包含多个专用于单个应用程序功能的服务器。应用程序NLB器会查看请求内容(如 HTTP 标头或 SSL 会话 ID)以重定向流量。
例如,电子商务应用程序具有产品目录、购物车和结账功能。应用程序NLB器会将浏览产品的请求发送给包含图像和视频但不需要保持开放连接的服务器。相比之下,它会将购物车请求发送给能够保持多个客户端连接并长时间保存购物车数据的服务器。
网络NLB
网络NLB器会检查 IP 地址和其他网络信息,以最佳方式重定向流量。它们将跟踪应用程序流量的来源,并可以将一个静态 IP 地址分配给多个服务器。网络NLB器使用前面介绍的静态和动态NLB算法来均衡服务器负载。
全局服务器NLB
全局服务器NLB可跨地理位置分散的多个服务器进行。例如,很多公司可能在不同国家/地区的多个数据中心以及全球的第三方云提供商中拥有服务器。在这种情况下,本地NLB器将管理某一地区或区域内的应用程序负载。这些NLB器会尝试将流量重定向到地理位置更接近客户端的服务器目标。只有在服务器出现故障的情况下,这些NLB器才会将流量重定向到客户端所在地理区域之外的服务器。
DNS NLB
在 DNS NLB中,您可以将域配置为跨域上的资源池路由网络请求。域可以对应于网站、邮件系统、打印服务器或可通过互联网访问的其他服务。DNS NLB有助于在全球分布的资源池中保持应用程序可用性以及均衡网络流量。
NLB技术有哪些类型?
NLB器属于以下两种类型之一:硬件NLB器和软件NLB器。
硬件NLB器
基于硬件的NLB器是一种硬件设备,可以安全地处理千兆字节的流量并将其重定向到数百个不同的服务器。您可以将其存储在数据中心,并使用虚拟化创建多个可以集中管理的数字或虚拟NLB器。
软件NLB器
基于软件的NLB器是执行所有NLB功能的应用程序。您可以将它们安装在任何服务器上,也可作为完全托管的第三方服务的形式访问。
硬件NLB器与软件NLB器的比较
硬件NLB器需要初始投资、配置和持续维护。您也可能不会满负荷使用它们,尤其是您购买硬件NLB器只是为了处理高峰时段的流量高峰。如果流量突然增加到超出其当前容量,这将影响用户,直到您能购买并设置另一个NLB器为止。
相比之下,基于软件的NLB器要灵活得多。它们可以轻松地纵向扩展或缩减,并且与现代云计算环境更加兼容。随着时间推移,它们的设置、管理和使用成本也会降低。