负载均衡总结-四层负载均衡和七层负载均衡的区别

1、四层负载和七层负载的对比html

1. 四层负责均衡:是经过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器与请求客户端创建TCP链接,而后发送Client请求的数据。linux

 

在OSI七层模型的第4层工做,即TCP层,其不会理解上层的协议如 HTTP/FTP等.nginx

 由上图,在四层负载设备中,把client发送的报文目标地址(原来是负载均衡设备的IP地址),根据均衡设备设置的选择web服务器的规则选择对应的web服务器IP地址,这样client就能够直接跟此服务器创建TCP链接并发送数据。web

相同条件下对比四层负载比与七层负载,四层有更好的性能。算法

2. 七层负载均衡设备:数据库

也称内容交换,也就是主要经过报文中的真正有意义的应用层内容,再加上负载均衡设备设置的服务器选择方式,决定最终选择的服务器。windows

由上图可知,其实七层负载均衡服务器起了一个代理服务器的做用,咱们知道创建一次TCP链接要三次握手;而client要访问webserver要先与七层负载设备进行三次握手后创建TCP链接,把要访问的报文信息发送给七层负载均衡;而后七层负载均衡再根据设置的均衡规则选择特定的webserver,而后经过三次握手与此台webserver创建TCP链接,而后webserver把须要的数据发送给七层负载均衡设备,负载均衡设备再把数据发送给client;因此,七层负载均衡设备起到了代理服务器的做用。浏览器

3. 七层的负责均衡的优势:缓存

   经过对HTTP报头的检查,能够检测出HTTP400、500和600系列的错误信息,于是能透明地将链接请求从新定向到另外一台服务器,避免应用层故障。安全

   能够有效防止 SYN Flood攻击,是网站更安全

 可根据流经的数据类型(如判断数据包是图像文件、压缩文件或多媒体文件格式等),把数据流量引向相应内容的服务器来处理,增长系统性能。

4. 七层负载均衡设备的缺点:

  由于七层负载均衡设备实际上是一个代理服务器,受到其所支持的协议限制(HTTP),这样就限制了它应用的普遍性,而且检查HTTP报头会占用大量的系统资源,势必会影响到系统的性能,在大量链接请求的状况下,负载均衡设备自身容易成为网络总体性能的瓶颈。

2、负载均衡的算法

轮循均衡(Round Robin):每一次来自网络的请求轮流分配给内部中的服务器,从1至N而后从新开始。此种均衡算法适合于服务器组中的全部服务器都有相同的软硬件配置而且平均服务请求相对均衡的状况。

权重轮循均衡(Weighted Round Robin):根据服务器的不一样处理能力,给每一个服务器分配不一样的权值,使其可以接受相应权值数的服务请求。例如:服务器A的权值被设计成1,B的权值是 3,C的权值是6,则服务器A、B、C将分别接受到10%、30%、60%的服务请求。此种均衡算法能确保高性能的服务器获得更多的使用率,避免低性能的服务器负载太重。

随机均衡(Random):把来自网络的请求随机分配给内部中的多个服务器。

权重随机均衡(Weighted Random):此种均衡算法相似于权重轮循算法,不过在处理请求分担时是个随机选择的过程。

响应速度均衡(Response Time):负载均衡设备对内部各服务器发出一个探测请求(例如Ping),而后根据内部中各服务器对探测请求的最快响应时间来决定哪一台服务器来响应客户端的服务请求。此种均衡算法能较好的反映服务器的当前运行状态,但这最快响应时间仅仅指的是负载均衡设备与服务器间的最快响应时间,而不是客户端与服务器间的最快响应时间。

最少链接数均衡(Least Connection):客户端的每一次请求服务在服务器停留的时间可能会有较大的差别,随着工做时间加长,若是采用简单的轮循或随机均衡算法,每一台服务器上的链接进程可能会产生极大的不一样,并无达到真正的负载均衡。最少链接数均衡算法对内部中需负载的每一台服务器都有一个数据记录,记录当前该服务器正在处理的链接数量,当有新的服务链接请求时,将把当前请求分配给链接数最少的服务器,使均衡更加符合实际状况,负载更加均衡。此种均衡算法适合长时处理的请求服务,如FTP。

处理能力均衡:此种均衡算法将把服务请求分配给内部中处理负荷(根据服务器CPU型号、CPU数量、内存大小及当前链接数等换算而成)最轻的服务器,因为考虑到了内部服务器的处理能力及当前网络运行情况,因此此种均衡算法相对来讲更加精确,尤为适合运用到第七层(应用层)负载均衡的状况下。

DNS响应均衡(Flash DNS):在Internet上,不管是HTTP、FTP或是其它的服务请求,客户端通常都是经过域名解析来找到服务器确切的IP地址的。在此均衡算法下,分处在不一样地理位置的负载均衡设备收到同一个客户端的域名解析请求,并在同一时间内把此域名解析成各自相对应服务器的IP地址(即与此负载均衡设备在同一位地理位置的服务器的IP地址)并返回给客户端,则客户端将以最早收到的域名解析IP地址来继续请求服务,而忽略其它的IP地址响应。在种均衡策略适合应用在全局负载均衡的状况下,对本地负载均衡是没有意义的。

尽管有多种的负载均衡算法能够较好的把数据流量分配给服务器去负载,但若是负载均衡策略没有对网络系统情况的检测方式和能力,一旦在某台服务器或某段负载均衡设备与服务器网络间出现故障的状况下,负载均衡设备依然把一部分数据流量引向那台服务器,这势必形成大量的服务请求被丢失,达不到不间断可用性的要求。因此良好的负载均衡策略应有对网络故障、服务器系统故障、应用服务故障的检测方式和能力

Ping侦测:经过ping的方式检测服务器及网络系统情况,此种方式简单快速,但只能大体检测出网络及服务器上的操做系统是否正常,对服务器上的应用服务检测就无能为力了。

TCP Open侦测:每一个服务都会开放某个经过TCP链接,检测服务器上某个TCP端口(如Telnet的23口,HTTP的80口等)是否开放来判断服务是否正常。

HTTP URL侦测:好比向HTTP服务器发出一个对main.html文件的访问请求,若是收到错误信息,则认为服务器出现故障。

负载均衡策略的优劣除受上面所讲的两个因素影响外,在有些应用状况下,咱们须要未来自同一客户端的全部请求都分配给同一台服务器去负担,例如服务器将客户端注册、购物等服务请求信息保存的本地数据库的状况下,把客户端的子请求分配给同一台服务器来处理就显的相当重要了。有两种方式能够解决此问题,一是根据IP地址把来自同一客户端的屡次请求分配给同一台服务器处理,客户端IP地址与服务器的对应信息是保存在负载均衡设备上的;二是在客户端浏览器 cookie内作独一无二的标识来把屡次请求分配给同一台服务器处理,适合经过代理服务器上网的客户端。

还有一种路径外返回模式(Out of Path Return),当客户端链接请求发送给负载均衡设备的时候,中心负载均衡设备将请求引向某个服务器,服务器的回应请求再也不返回给中心负载均衡设备,即绕过流量分配器,直接返回给客户端,所以中心负载均衡设备只负责接受并转发请求,其网络负担就减小了不少,而且给客户端提供了更快的响应时间。此种模式通常用于HTTP服务器群,在各服务器上要安装一块虚拟网络适配器,并将其IP地址设为服务器群的VIP,这样才能在服务器直接回应客户端请求时顺利的达成三次握手

3、负载均衡的实施要素

针对当前及未来的应用需求,分析网络瓶颈的不一样所在,咱们就须要确立是采用哪一类的负载均衡技术,采用什么样的均衡策略,在可用性、兼容性、安全性等等方面要知足多大的需求,如此等等。下面这几项都是咱们在引入均衡方案时可能要考虑的问题:

性能:性能是咱们在引入均衡方案时须要重点考虑的问题,但也是一个最难把握的问题。衡量性能时可将每秒钟经过网络的数据包数目作为一个参数,另外一个参数是均衡方案中服务器群所能处理的最大并发链接数目,可是,假设一个均衡系统能处理百万计的并发链接数,但是却只能以每秒2个包的速率转发,这显然是没有任何做用的。性能的优劣与负载均衡设备的处理能力、采用的均衡策略息息相关,而且有两点须要注意:1、均衡方案对服务器群总体的性能,这是响应客户端链接请求速度的关键;2、负载均衡设备自身的性能,避免有大量链接请求时自身性能不足而成为服务瓶颈。有时咱们也能够考虑采用混合型负载均衡策略来提高服务器群的整体性能,如DNS负载均衡与NAT负载均衡相结合。另外,针对有大量静态文档请求的站点,也能够考虑采用高速缓存技术,相对来讲更节省费用,更能提升响应性能;对有大量ssl/xml内容传输的站点,更应考虑采用ssl/xml加速技术。好比经过CDN网络等方式实现。

可扩展性:IT技术突飞猛进,一年之前最新的产品,如今或许已经是网络中性能最低的产品;业务量的急速上升,一年前的网络,如今须要新一轮的扩展。合适的均衡解决方案应能知足这些需求,能均衡不一样操做系统和硬件平台之间的负载,能均衡HTTP、邮件、新闻、代理、数据库、防火墙和 Cache等不一样服务器的负载,而且能以对客户端彻底透明的方式动态增长或删除某些资源。

灵活性:均衡解决方案应能灵活地提供不一样的应用需求,知足应用需求的不断变化。在不一样的服务器群有不一样的应用需求时,应有多样的均衡策略提供更普遍的选择。

可靠性:在对服务质量要求较高的站点,负载均衡解决方案应能为服务器群提供彻底的容错性和高可用性。但在负载均衡设备自身出现故障时,应该有良好的冗余解决方案,提升可靠性。使用冗余时,处于同一个冗余单元的多个负载均衡设备必须具备有效的方式以便互相进行监控,保护系统尽量地避免遭受到重大故障的损失。

易管理性:不论是经过软件仍是硬件方式的均衡解决方案,咱们都但愿它有灵活、直观和安全的管理方式,这样便于安装、配置、维护和监控,提升工做效率,避免差错。在硬件负载均衡设备上,目前主要有三种管理方式可供选择:1、命令行接口(CLI:Command Line Interface),可经过超级终端链接负载均衡设备串行接口来管理,也能telnet远程登陆管理,在初始化配置时,每每要用到前者;2、图形用户接口(GUI:Graphical User Interfaces),有基于普通web页的管理,也有经过Java Applet 进行安全管理,通常都须要管理端安装有某个版本的浏览器;3、SNMP(Simple Network Management Protocol,简单网络管理协议)支持,经过第三方网络管理软件对符合SNMP标准的设备进行管理。

4、主流服务器

1.jexus /iis 反向代理 实现的都是七层负载均衡
2.nginx 是七层负载均衡
3.LVS 提供的三种负载均衡模式 VS/NAT VS/TUN VS/DR  中,VS/NAT是属于七层负载均衡方式,另两种是四层负载均衡方式。4.F5 属于四层负载均衡设备
5.windows下负载均衡方案, Windows平台分布式架构实践 - 负载均衡( Microsoft 网络负载均衡)
 
6.haproxy 目前了解看是一种七层负载模式; HAProxy的三种不一样类型配置方案 里面有提到一些 四层和七层的方案

 参考这里这里

相关文章
相关标签/搜索