负载均衡实现方式

负载均衡(Load Balance),其意思就是将负载(工作任务)进行平衡、分摊到多个操作单元上进行执行。在负载均衡中可以分为两种方式,硬件方式与软件方式。硬件负载均衡主要是有F5、思科,软件方式(不区分四层与七层负载均衡)主要包括http重定向、DNS重定向、反向代理(如nginx)、NAT转换等。

WRR算法

假设有3台机器a、b、c,权重分别为5,1,1, WRR(Weighted Round Robin)算法实现方式是:每次选出权重最大的机器,其权重减1,直到权重全部为0。然后按照生成的序列循环。

                           


最终得到的循环序列为:a,a,a,a,a,b,c,虽然此时负载是均衡的(5:1:1),但是前五次访问都打到a机器,b和c机器是空闲的。理想状态是在均衡的情况下让访问次数也均衡分布,于是就有了SWRR算法(Smooth Weighted Round Robin),平滑加权轮训调度算法。

SWRR算法

对于上面的案例,SWRR算法策略是:

1、从权重中选出最大的,减去总权重

2、然后再给每个权重加上自身权重初始值

3、再次轮训,直到权重为0,确定序列

得到的最终循环序列是:a,a,b,a,c,a,a,访问效果比WRR算法更优。

但是SWRR算法在大量并发来临的时候,第一次始终会选择a机器,就有可能导致a机器瘫痪。解决方案为:对于生成的序列随机选择一个开始,比如有5台负载的机器,都生成了a,a,b,a,c,a,a的序列,但是每台机器不完全按照这个序列轮训,而是随机选择一个开始,那生成的序列就可能变成下面这样:

这样能降低流量突增时第一台机器被打瘫痪的概率。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值