服务器负载均衡的基本功能和实现原理.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
服务器负载均衡的基本功能和实现原理 2011-07-18 18:11:30 标签: 负载均衡 服务器 健康检查 算法 原理 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 /3027116/615836 负载均衡设备作为纵跨网络2-7层协议的设备,往往放置在网络设备和应用设备的连接处,对工程师在网络和应用基本知识方面的要求远高于其他设备,所以我们要在基本功能的理解上下更多的功夫。负载均衡设备还有另外一个称呼:4/7层交换机,但它首先是个2-3层交换机,这要求我们首先掌握2-3层的基本知识,然后才是本文介绍的内容。 服务器负载均衡有三大基本Feature:负载均衡算法,健康检查和会话保持,这三个Feature是保证负载均衡正常工作的基本要素。其他一些功能都是在这三个功能之上的一些深化。下面我们具体介绍一下各个功能的作用和原理。 在没有部署负载均衡设备之前,用户直接访问服务器地址(中间或许有在防火墙上将服务器地址映射成别的地址,但本质上还是一对一的访问)。当单台服务器由于性能不足无法处理众多用户的访问时,就要考虑用多台服务器来提供服务,实现的方式就是负载均衡。负载均衡设备的实现原理是把多台服务器的地址映射成一个对外的服务IP(我们通常称之为VIP,关于服务器的映射可以直接将服务器IP映射成VIP地址,也可以将服务器IP:Port映射成VIP:Port,不同的映射方式会采取相应的健康检查,在端口映射时,服务器端口与VIP端口可以不相同),这个过程对用户端是透明的,用户实际上不知道服务器是做了负载均衡的,因为他们访问的还是一个目的IP,那么用户的访问到达负载均衡设备后,如何把用户的访问分发到合适的服务器就是负载均衡设备要做的工作了,具体来说用到的就是上述的三大Feature。 我们来做一个详细的访问流程分析: 用户(IP:0)访问域名 ,首先会通过DNS查询解析出这个域名的公网地址:24,接下来用户0会访问24这个地址,因此数据包会到达负载均衡设备,接下来负载均衡设备会把数据包分发到合适的服务器,看下图: 负载均衡设备在将数据包发给服务器时,数据包是做了一些变化的,如上图所示,数据包到达负载均衡设备之前,源地址是:0,目的地址是:24, 当负载均衡设备将数据包转发给选中的服务器时,源地址还是:0,目的地址变为,我们称这种方式为目的地址NAT(DNAT)。一般来说,在服务器负载均衡中DNAT是一定要做的(还有另一种模式叫做服务器直接返回-DSR,是不做DNAT的,我们将另行讨论),而源地址根据部署模式的不同,有时候也需要转换成别的地址,我们称之为:源地址NAT(SNAT),一般来说,旁路模式需要做SNAT,而串接模式不需要,本示意图为串接模式,所以源地址没做NAT。 我们再看服务器的返回包,如下图所示,也经过了IP地址的转换过程,不过应答包中源/目的地址与请求包正好对调,从服务器回来的包源地址为,目的地址为0,到达负载均衡设备后,负载均衡设备将源地址改为24,然后转发给用户,保证了访问的一致性。 以上是单个数据包的处理流程。那么负载均衡设备是怎么选择服务器的呢? 这就是我们要介绍的第一个Feature: 负载均衡算法 一般来说负载均衡设备都会默认支持多种负载均衡分发策略,例如: ? 轮询(RoundRobin)将请求顺序循环地发到每个服务器。当其中某个服务器发生故障,AX就把其从顺序循环队列中拿出,不参加下一次的轮询,直到其恢复正常。 ? 比率(Ratio):给每个服务器分配一个加权值为比例,根椐这个比例,把用户的请求分配到每个服务器。当其中某个服务器发生故障,AX就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。 ? 优先权(Priority):给所有服务器分组,给每个组定义优先权,将用户的请求分配给优先级最高的服务器组(在同一组内,采用预先设定的轮询或比率算法,分配用户的请求);当最高优先级中所有服务器或者指定数量的服务器出现故障,AX将把请求送给次优先级的服务器组。这种方式,实际为用户提供一种热备份的方式。 ? 最少连接数(LeastConnection):AX会记录当前每台服务器或者服务端口上的连接数,新的连接将传递给连接数最少的服务器。当其中某个服务器发生故障,AX就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。 ? 最快响应时间(Fast Reponse time):新的连接传递给那些响应最快的服务器。当其中某个服务器发生故障,AX就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。 以上为通用的负载均衡算法,还有一些算法根据不同的需求也可能会用到,例如: ? 哈

文档评论(0)

___________ + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档