美文网首页
nginx中的平滑加权轮询算法

nginx中的平滑加权轮询算法

作者: 爱吃花栗鼠的猫 | 来源:发表于2017-03-14 07:01 被阅读307次

    简介

    负载均衡是集群,分布式服务中绕不开的一个话题,采用什么样的算法最合理?只有根据自己的业务场景来决定,现在介绍下nginx中的一种较为合理的均衡算法,平滑加权轮询算法。
    假如不考虑服务器之间的性能差异,那么最合理的算法莫过于随机,最简单,最实用,也最不容易出错。
    假如考虑服务器之间的性能差异,比如每台机器有不同的权值,那么就不可取随机了。

    平滑加权轮询算法流程

    请求序号 | 选中之前权值 | 选中 | 选中之后
    ----|------|----
    1 | 4,2,1 | a|-3,2,1
    2 | 1,4,2 | b|1,-3,2
    3| 5,-1,3|a|-2,-1,3
    4|2,1,4|c|2,1,-3
    5|6,3,-2|a|-1,3,-2
    6|3,5,-1|b|3,-2,-1
    7|7,0,0|a|0,0,0

    示例:比如第一次请求,选权值最高的a(非常显然),选完之后,<b>命中者</b>的权值减掉权值和(4+2+1=7),得到-3,2,1, 然后再加上原权值(4,2,1),变成(1,4,2)

    测试

    通过此算法得出的大量数据表明,分配是绝对的平滑均匀合理的。

    相关文章

      网友评论

          本文标题:nginx中的平滑加权轮询算法

          本文链接:https://www.haomeiwen.com/subject/lgrcnttx.html