架构设计之:LVS 调度策略

LVS调度策略

● 无脑轮询
● 加权无脑轮询
● 最少链接
● 加权最少链接
● IP_Hash
● IP_Hash_Group

概要介绍

无脑轮询
特点:是许多LVS设备、Nginx设备、Dubbo RPC负载均衡的调度设备的默认策略。
方式:假设有N台服务器,当有请求时,会按照1,2......N,1,2......进行顺序轮询。

加权无脑轮询
特点:让性能更好的设备承担更多的请求处理。
方式:假设有3台服务器,设置权重221,则第1,2个请求先由第一台承担,第3,4个请求由第二台,第5个由第三台,以此循环。

最少链接
特点:挑选负载最轻的一台设备处理请求。
方式:假设LVS设备收到包后,挑选一台服务发送过去。在未收到返回时,该LVS不动,保持连接。(当后端服务器压力越大时,处理速度越慢。)LVS就会感知到后端服务器的连接越来越多,认定这台服务器负载太大,就会选取跟他最少连接的另一个后端服务器去转发对应的请求报文。

加权最少链接
特点:在 最少链接 基础上加上权重。

IP_Hash
特点:保证元客户端永远访问到固定的一个后端Real Server。一般用来解决分布式登录态的问题,始终保持某个客户端在某台服务器上有效。
方式:将元客户端IP地址做Hash Code,出来的整数值对所有后端服务器数量取余,取余的数字作为发送到后端服务器某个具体索引地址上的后端服务器地址。

参照

分布式登录态问题:
分布式session如果不考虑中间缓存Redis策略,仍以Tomcat的session管理机制,则他其实存在本地文件里。若采用轮询方式,用户会发现刚刚登录过,再请求时又要登录。即某台后端服务器A中已产生了session并保存下来,但下次请求时轮询到服务器B,因为B没有该用户的session,就必须重新登录。

注意事项
当需要移除一台服务器时,不能直接删除这个配置项,而是需要在这台服务器配置后面加上关键字down,表示不可用。因为如果直接移除配置项,会导致hash算法发生更改,后续所有的请求都会发生混乱。

IP_Hash_Group
特点:保证元客户端永远访问到固定的一组后端Real Server。

IP_Hash衍生:URL_Hash
特点:只要访问同样业务ID(如商品ID)的URL请求,就会被强制路由到某台固定的后台服务器设备中。也可以做本地缓存优化,将热点商品数据放到服务器的本地缓存中,让所有访问该热点商品的请求都加到这台服务器,命中缓存,提升Redis的利用效率。
如果请求过于集中,后端服务器可能承受不了,这时就使用 URL_Hash_Group 解决。

你可能感兴趣的:(架构设计之:LVS 调度策略)