负载均衡原理、种类和算法
负载均衡原理
随机、轮训、加权 源地址hash法、最小连接数、最快响应速度等
负载均衡(Load Balance,简称LB)是一种服务器或网络设备的集群技术。 负载均衡将特定的业务(网络服务、网络流量等)分担给多个服务器或网络设备,从而提高了业务处理能力,保证了业务的高可用性。 负载均衡基本概念有:实服务、实服务组、虚服务、调度算法、持续性等,其常用应用场景主要是服务器负载均衡,链路负载均衡。 负载均衡器主要分为硬件负载均衡和软件负载均衡两大类。
应用集群:将同一应用部署到多台机器上,组成处理集群,接收负载均衡设备分发的请求,进行处理,并返回相应数据。
负载均衡设备:将用户访问的请求,根据负载均衡算法,分发到集群中的一台处理服务器。(一种把网络请求分散到一个服务器集群中的可用服务器上去的设备)
负载均衡的作用(解决的问题): 1.解决并发压力,提高应用处理性能(增加吞吐量,加强网络处理能力); 2.提供故障转移,实现高可用; 3.通过添加或减少服务器数量,提供网站伸缩性(扩展性); 4.安全防护;(负载均衡设备上做一些过滤,黑白名单等处理)
负载均衡类型
根据实现技术不同,可分为DNS负载均衡,HTTP负载均衡,IP负载均衡,链路层负载均衡等。
DNS负载均衡 HTTP负载均衡(Nginx,Haproxy) IP负载均衡:在网络层通过修改请求目标地址进行负载均衡。 链路层负载均衡:通信协议的数据链路层修改mac地址,进行负载均衡。 混合型负载均衡:
根据OSI模型可将负载均衡分为: 1)二层负载均衡(一般是用虚拟mac地址方式,外部对虚拟MAC地址请求,负载均衡接收后分配后端实际的MAC地址响应); 2)三层负载均衡(一般采用虚拟IP地址方式,外部对虚拟的ip地址请求,负载均衡接收后分配后端实际的IP地址响应); 3)四层负载均衡(在三次负载均衡的基础上,用 ip+port 接收请求,再转发到对应的机器); 4)七层负载均衡(根据虚拟的url或是IP,主机名接收请求,再转向相应的处理服务器)。 这其中,最常见的是四层和七层负载均衡
负载均衡算法
常用的负载均衡算法分为两类: 1)一种是静态负载均衡; 轮询法: 随机法: 源地址哈希法: 加权轮询法: 加权随机法: 键值范围法: 2)一种是动态负载均衡。 最小连接数法: 最快响应速度法: 观察模式法:
负载均衡算法: 常用的负载均衡算法有,轮询,随机,最少链接,源地址散列,加权等方式;
轮询(Round Robin,RR):加权轮询(Weighted Round Robin,WRR) 将所有请求,依次分发到每台服务器上,适合服务器硬件同相同的场景。 优点:服务器请求数目相同; 缺点:服务器压力不一样,不适合服务器配置不同的情况;
随机(Random) 请求随机分配到各个服务器。 优点:使用简单; 缺点:不适合机器配置不同的场景;
最少连接(Least Connections):加权最少链接(Weighted Least Connections)简称WLC 将请求分配到连接数最少的服务器(目前处理请求最少的服务器)。 优点:根据服务器当前的请求处理情况,动态分配; 缺点:算法实现相对复杂,需要监控服务器请求连接数;
Hash源地址散列(Source hashing) 根据IP地址进行Hash计算,得到IP地址。 优点:4将来自同一IP地址的请求,同一会话期内,转发到相同的服务器;实现会话粘滞。 缺点:目标服务器宕机后,会话会丢失;
加权 在轮询,随机,最少链接,Hash’等算法的基础上,通过加权的方式,进行负载服务器分配。 优点:根据权重,调节转发服务器的请求数目; 缺点:使用相对复杂;
参考 https://blog.csdn.net/Kim_Weir/article/details/80550133 https://www.jianshu.com/p/215b5575107c https://www.jianshu.com/p/7bb52818b8a9 https://blog.51cto.com/7346473/1597135 https://segmentfault.com/a/1190000019026606 https://blog.csdn.net/a724888/article/details/80775778
Last updated
Was this helpful?