负载均衡算法记载

て烟熏妆下的殇ゞ 提交于 2020-02-25 17:11:12

    本篇主要记载常见的几种负载均衡算法:

   假如现在有服务器列表:A、B、C

随机

    简单随机算法:随机很简单,就是产生随机数,每次调用根据随机数对应的机器

    加权随机算法:

                1.根据权重比值,修改对应机器的占比,基于简单随机算法实现。(权重太多,对应的列表size过大)

                2.根据坐标轴方式:            

                        将机器对应的权重映射到坐标轴上,随机算法产生随机数,然后随机数与坐标轴坐标对比,看落在哪个区间,这就对应哪个机器。

                        例:A->3,B->4,C->3      0---3----7---10, 产生8,8<targetValue return else 5=8-3; 5<targetValue

轮询(RoundRobin)

                1.简单轮询算法:做一个全局计数器,每次调用递增1,取模。

                2.加权轮询算法:也可以基于加权随机坐标轴的方法。可能会出现AAABBBBCCC,这样就不是很均匀。极端情况下权重配置也会导致某台服务器负载很大。引入动态权重的概念,动态权重=静态权重+上次的动态权重结果

            过程:

                    curWeight += weight   max(curWeight)    result  max(curWeight) -= totalWeight
                                        5,1,1                  5                              A                   -2,1,1
                                        3,2,2                 3                              A                   -4,2,2
                                        1,3,3                  3                              B                   1,-4,3
                                        6,-3,4               6                               A                   -1,-3,4
                                        4,-2,5               5                               C                   4,-2,-2
                                        9,-1,-1              9                               A                    2,-1,-1
                                        7,0,0                 7                               A                     -1,0,0
                                        4,1,1                  4                               A                     -3,1,1

哈希

最小活跃数

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!