一、负载均衡(LB)设备的分担算法:
1.LB的工作原理:
服务端发送的请求经LB设备后,被分流到不同的server端。好处是只需对外暴露LB的虚拟ip,server端的ip只能内部访问。而且LB上一般有SSL加速,负责ssl的加解密工作,在client与LB之间的通信为https,LB与server之间通信转为对应的http,减轻server的压力。
2.LB设备上对请求的分配算法:
a). 轮询:将server排成一个链表,来一个请求,安排一个server(比如server1)处理;下一个请求就安排其后继处理(server2),上图就是一种轮询。在server上加上权重,就是加权轮询。
b). 最少连接数:来一个请求,遍历所有server,找到当前连接数最少的,将请求交给其处理。同样,server上加权后,就是加权最少连接数。
c). 主机ip散列:将server组成一个数组,将发出请求的client的ip(请求中携带的源ip)散列到对应的server上。这种算法能有效的解决一个实际问题:当client期望与同一个server持续对话时,比如,前后的请求有依赖关系,此时若使用轮询或最小连接数,将使业务出现问题,而因client的ip不会变化,散列到的都是同一个server,可很好的解决持续会话的问题。
d). URL请求散列:同样将server组成数组,与c不同的是,使用请求的url散列。这样会把相同的请求只交给同一个server处理,比如,想get某个资源,不管哪个client,在何时发请求,只要是发送的同样的url,最后都会交个同一台server处理。