负载均衡

来源:互联网 发布:大掌门练脉数据 编辑:程序博客网 时间:2024/06/05 09:16

最近想了解一下负载均衡,就从网上找了一些总结了一下:


负载均衡,英文名称为LoadBalance,其意思就是将负载(工作任务)进行平衡,分摊到多个操作单元上进行执行(例如Web服务器、FTP服务器等),实现多个服务器共同完成工作任务的目标。负载均衡建立在现有网络结构之上,它提升了服务器的性能、提高了带宽利用率,增强了网络的灵活性和可靠性。经过十年的发展,负载均衡已经成为网络应用的重要设备,甚至成为大型网络应用的核心设备,与基础路由、交换设备市场并驾齐驱。

    十年间,负载均衡的前沿技术层出不穷,令用户眼花缭乱。经常在技术网站、文档中出现的“四层负载均衡”、“七层负载均衡”字眼有什么含义?有什么区别?对客户网络有哪些不同的优化?带着这样的疑问,今天我们就来仔细研究一番。

    四层负载均衡像银行自助排号机七层负载均衡像银行大堂经理

    首先,我们来了解一下什么是四层负载均衡、什么是七层负载均衡。

四层负载均衡指的是负载均衡设备通过报文中的目标IP地址和端口负载均衡算法,选择到达目的的内部服务器;

七层负载均衡,也被称为“内容交换”,指的是负载均衡设备通过报文中的应用层信息(URL、HTTP头部等信息)和负载均衡算法,选择到达目的的内部服务器。

二者的区别可以举个例子形象的说明:

四层负载均衡就像银行的自助排号机,每一个达到银行的客户根据排号机的顺序,选择对应的窗口接受服务;

而七层负载均衡像银行大堂经理,先确认客户需要办理的业务,再安排排号。这样办理理财、存取款等业务的客户,会根据银行内部资源得到统一协调处理,加快客户业务办理流程。

    七层应用负载的好处是使得整个网络更“智能化”!

例如,在网站的运行中,用户可以通过七层的方式,将图片类的请求通过缓存技术传输到特定的图片服务器,将对文字类的请求通过压缩技术传输到特定的文字服务器。当然这只是七层应用的一个小案例,从技术原理上,这种方式可以对客户端的请求和服务器的响应进行任意方式的修改,极大提升了应用系统在网络层的灵活性。很多在后台(例如Nginx或者Apache)上部署的功能可以前移到负载均衡设备上(例如客户请求中的Header重写,服务器响应中的关键字过滤或者内容插入等)。

    另外一个常常被提到功能就是安全性。在网络中常见的SYNFlood攻击中,黑客会控制众多客户端(肉鸡),使用虚假IP地址对同一目标发动SYN攻击,通常这种攻击会大量发送SYN报文,耗尽服务器上的相关资源,以达到DenialofService(DoS)的目的。

从技术原理上也可以看出,四层模式下这些SYN攻击都会被转发到后端的服务器上;而在七层模式下这些SYN攻击自然在负载均衡设备上就截止,不会影响后台服务器的正常运营。另外负载均衡设备可以在七层层面设定多种策略,过滤SQL Injection等应用层面的特定攻击手段,进一步提高系统整体安全。

    国内负载均衡技术缺少根本性突破“浑水摸鱼”伪七层负载均衡或将逐步减少

    聊到这里,大家应该都明白四层负载均衡和七层负载均衡的区别了。七层负载均衡技术对产品的性能、算法、高可靠性和安全性有着更高的要求。而导致这种技术的差异性,更多的体现在厂商对负载均衡专有平台的开发上,具体可以概括为以下四点,不满足这四点的产品都不能称为七层负载均衡:

    第一、七层负载的应用以HTTP协议为主,四层负载的应用以TCP为主,通过测试仪可以看出,七层负载的吞吐性能要比四层负载的吞吐性能低。七层吞吐性能严重考验着负载均衡厂商们,如果不解决这个核心问题,负载均衡设备就会成为网络的瓶颈,严重影响网络的稳定性。

    第二、七层负载算法需要识别URL、Cookie和HTTPhead等信息,算法计算程度更丰富,对CPU的负载要求更高,这就需要更高性能的产品。虽然目前硬件平台已经发展到多核,但是国内厂商在多核平台的应用开发上存在着较大差距,严重制约负载均衡设备多核之间计算能力的协调分配和使用。


DNS负载

基于DNS的负载均衡
---- DNS负载均衡技术是最早的负载均衡解决方案,它是通过DNS服务中的随机名字解析来实现的,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中的一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,它们也就访问不同地址上的Web服务器,从而达到负载均衡的目的。
---- 这种技术的优点是,实现简单、实施容易、成本低、适用于大多数TCP/IP应用;但是,其缺点也非常明显,首先这种方案不是真正意义上的负载均衡,DNS服务器将Http请求平均地分配到后台的Web服务器上,而不考虑每个Web服务器当前的负载情况;如果后台的Web服务器的配置和处理能力不同,最慢的Web服务器将成为系统的瓶颈,处理能力强的服务器不能充分发挥作用;其次未考虑容错,如果后台的某台Web服务器出现故障,DNS服务器仍然会把DNS请求分配到这台故障服务器上,导致不能响应客户端。最后一点是致命的,有可能造成相当一部分客户不能享受Web服务,并且由于DNS缓存的原因,所造成的后果要持续相当长一段时间(一般DNS的刷新周期约为24小时)。所以在国外最新的建设中心Web站点方案中,已经很少采用这种方案了。

交换负载

.基于四层交换技术的负载均衡
---- 这种技术是在第四层交换机上设置Web服务的虚拟IP地址,这个虚拟IP地址是DNS服务器中解析到的Web服务器的IP地址,对客户端是可见的。当客户访问此Web应用时,客户端的Http请求会先被第四层交换机接收到,它将基于第四层交换技术实时检测后台Web服务器的负载,根据设定的算法进行快速交换。常见的算法有轮询、加权、最少连接、随机和响应时间等。

七层负载

基于七层交换技术的负载均衡
---- 基于第七层交换的负载均衡技术主要用于实现Web应用的负载平衡和服务质量保证。它与第四层交换机比较起来有许多优势:第七层交换机不仅能检查TCP/IP数据包的TCP和UDP端口号,从而转发给后台的某台服务器来处理,而且能从会话层以上来分析Http请求的URL,根据URL的不同将不同的Http请求交给不同的服务器来处理(可以具体到某一类文件,直至某一个文件),甚至同一个URL请求可以让多个服务器来响应以分担负载(当客户访问某一个URL,发起Http请求时,它实际上要与服务器建立多个会话连接,得到多个对象,例如.txt/.gif/.jpg文档,当这些对象都下载到本地后,才组成一个完整的页面)。


0 0
原创粉丝点击