负载均衡(Load Balance)

现在应用架构使用负载均衡器将客户端的请求路由到不同的应用服务器,以提高系统性能。

一、负载均衡体系结构

多台服务器通过网络设备相连组成一个服务器集群,每台服务器都提供相同或相似的网络服务。服务器集群前端部署一台负载均衡设备,负责根据已配置均衡策略将用户请求在服务器集群中的分发,为用户提供服务,并对服务器可用性的维护。对应体系结构如下:
服务器负载均衡体系结构
该结构的优势:
(1) 低成本:按照业务量增加服务器个数即可;已有资源不会浪费,新增资源无需选择昂贵的高端设备。
(2) 可扩展性:当业务量增长时,系统可通过增加服务器来满足需求,且不影响已有业务,不降低服务质量。
(3) 高可靠性:单台服务器故障时,由负载均衡设备将后续业务转向其他服务器,不影响后续业务提供,7 × 24小时业务不中断。

二、负载均衡调度算法

调度算法是负载均衡的实现核心。调用算法的实现有很多种,这里仅介绍几种常用的调用算法,如轮询算法、加权轮询算法、最少连接数算法、随机算法、源地址散列等。
(1) 轮询算法
新的连接被依次轮询分发到各个服务器上,比如第一个连接分发到第一台服务器,第二个连接分发到第二台服务器上,依次类推。
轮询算法适用于服务器集群中所有服务器都有相同的软硬件配置,并且平均服务器请求相对均衡的情况。
(2) 加权轮询算法
根据服务器不同的处理能力,给服务器分配不同的权值,使其能接受相应权值的服务器请求;
加权轮询算法能确保高性能的服务器能得到更多的使用率,避免低性能的服务器过载过重。
(3) 最少连接数算法
最少连接数算法对内部需要负载的每一台服务器上的连接数都一个记录,记录当前该服务器正在处理的连接数,当有新的服务连接请求时,把请求分发给连接数最少的服务器,使均衡更加符合实际情况,负载更加均衡;
最少连接数算法适合长时间处理的请求,例如:FTP。
根据服务器不同的处理能力,可以给服务器分配不同的权值,也即加权最少连接数算法:将加权与连接数配合使用,根据连接数与加权的比例计算出当前请求应该分发给哪个具体的服务器。
(4) 随机算法
将新连接请求随机分发给各个服务器;
加权随机算法,即将加权与随机算法配合使用,根据随机数与加权的比例计算出当前请求应该分发给哪个具体的服务器;
(5) 源地址散列
根据新连接请求的源IP地址进行散列HASH的结果,决定将请求分发给具体的服务器;
保证相同客户端的连接会被分发到相同的服务器上。
当很多客户共享同一IP地址时,此方法不是很合适(比如许多客户的请求由一个总的代理服务器来提交,对于负载均衡设备来说,看到的是同一个客户IP地址)。

三、持续性

持续性是指将多个连接持续重定向到同一个服务器。根据持续性原则,建立会话表项,保证后续业务报文都送往同一个服务器处理。常见的实现方案有:基于源IP地址的持续性功能;Cookies保持。
(1) 基于源IP地址
负载均衡设备接收到某一客户端的某一业务的首次请求时,建立持续性表项,记录为该客户分配的服务器情况,在会话表项生存周期内,后续该业务报文都将发往该服务器处理。基于源IP地址持续性功能的特点是:实现简洁快速。
(2) Cookies保持
Cookies持续性利用客户机存储的cookies信息来把客户端连接到合适的服务器上,其原理如下:

  1. 首次命中Http请求(不带cookes)进行LB,此时LB任选一台服务器,将请求转发至该服务器;
  2. 来自该服务器的Http回复报文此时包括一个空白的cookies,LB重写cookies,并再粘贴一个特殊的cookies后将http报文发送回去;
  3. 再次命中Http请求(带有与上面形相同的cookies)进入LB,LB设备借助cookies信息确定合适的服务器;

四、分类

按照负载均衡的应用场景,可将负载均衡分为如下三类:
(1) 服务器负载均衡:在数据中心等组网环境中,可以采用服务器负载均衡,将网络服务分担给多台服务器进行处理,提高数据中心的业务处理能力;
(2) 链路负载均衡:在有多个运营商出接口的组网环境中,可以采用出方向多链路动态负载均衡,实现链路的动态选择,提高服务的可靠性;
(3) 防火墙负载均衡:在防火墙处理能力成为瓶颈的组网环境中,可以采用防火墙负载均衡,将网络流量分担给多台防火墙设备,提高防火桥的处理能力;
目前接触最多的是服务器负载均衡,这里重点介绍。

五、服务器负载均衡概述

在介绍服务器负载均衡前,先介绍下基本概念。
虚服务:负载均衡设备对外提供的服务称为虚服务,虚服务由VPN实例,虚服务IP地址、服务协议、服务端口号唯一标识,配置负载均衡设备上,客户的访问请求通过公关网络或私有网络到达负载均衡设备时,匹配到虚服务后,由负载均衡设备按照既定的策略分发给实服务;
实服务:实服务器是真实服务器提供一种服务,该服务含义比较广泛,可以是传统的FTP,HTTP等业务,也可以是广泛的转发服务,如防火墙网关负载均衡中,实服务只是报文的转发路径;
实服务组:为了便于对实服务进行管理,将多个实服务的一些共有属性提取出来形成实服务组,一个虚服务对应一个实服务组,一个实服务组对应多个实服务,相同的实服务组不能属于不同的虚服务;

5.1工作机制

服务器负载均衡有两种工作方式:NAT(Network Address Translation,网络地址转换)方式;直接路由(DirectRouting,简称DR)方式。

5.1.1 NAT方式

NAT方式组网灵活,后端服务器可以位于不同的物理位置,不同的局域网内。
实现原理:
客户端将到VSIP的请求发送给服务器群前面的负载均衡设备,负载均衡设备上的虚服务接收客户端请求,通过调度算法,选择真实服务器,再通过网络地址转换,用真实服务器地址重写请求报文的目标地址后,将请求发送给选定的真实服务器;真实服务器的响应报文通过负载均衡设备时,报文的源地址被还原为虚服务的VSIP,再返回给客户,完成整个负载调度过程。图形表示如下:
NAT方式

5.1.2 DR方式

相对于NAT组网方式,DR组网方式要求:只有客户端的请求报文通过LB,服务器的响应报文不经过LB。这种方式可以减少LB的负载,有效的避免LB成为网络瓶颈,保证LB转发性能。
实现原理:
DR方式的服务器负载均衡时,除了LB设备上配置了VSIP,真实服务器也都配置了VSIP址,配置的VSIP要求不能响应ARP请求,例如在环回接口上配置VSIP。发送给VSIP的报文,由LB分发给相应的真实服务器,从真实服务器返回给客户端的报文直接通过交换机返回。图形表示如下:
DR方式

5.2服务器状态检查

所谓状态检查就是指负载均衡设备定期对真实服务器运行状态进行探测,收集相应信息,及时隔离工作异常的服务器。健康检查的结果除标识服务器能否正常工作外,还可以统计出服务器影响时间,作为选择服务器的依据。负载均衡技术支持丰富的健康状态检查算法,可以有效地探测和检查服务器的运行状态。
(1) ICMP:向服务器发送ICMPEcho报文,若收到ICMP Reply,则服务器正常;
(2) TCP:向服务器的某端口建立TCP连接,若成功,则服务器正常;
(3) HTTP:和服务器的80端口建立TCP连接,然后发出HTTP请求,若所收到的HTTP应答内容争取,则服务器正常;
(4) FTP:和服务器21端口建立连接,然后获取一个服务器相关目录放置的文件,若所收到的文件内容正确,则服务器正常;
图示如下:
健康监测算法

参考链接

https://blog.csdn.net/propro1314/article/details/46924687 负载均衡的算法
https://blog.csdn.net/u013743253/article/details/80476116 负载均衡
https://blog.csdn.net/u013743253/article/details/80476116 流量负载均衡概述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值