分布式设计

LB算法

2018-08-13  本文已影响0人  DjangoW
  1. 轮询调度算法(Round Robin Scheduling)
    通过循环迭代(i++)%n来选出某台服务器来处理接收到的用户请求
    是无状态调度,不会记录当前所有链接的状态。

  2. 加权轮询调度(Weighted Round-Robin Scheduling)
    在轮询调度的基础上加上一个条件,当weight为0时表示该server不可用而不被调度。
    可以用来屏蔽故障服务器,或者服务器升级维护

  3. 随机调度(Random Scheduling)
    通过i = random(int) % n来选出第i台服务器来处理用户请求
    加权随机调度和2类似

  4. 最少链接调度(Least Connection Scheduling)
    LB记录当前服务器接收到的连接个数,每次接收新链接,count加一
    最少链接调度就是选取记录的count最小的server来处理用户请求
    加权最少链接调度和2类似

  5. 哈希调度算法(Hash Scheduling)
    对发出请求的client的ip做i=hash(ip)%n取到第i台服务器来处理用户请求
    加权哈希调度和2的描述类似

  6. 基于地址的最小连接数调度(Locality-Based Least Connections Scheduling)
    将来自同一个ip地址的请求分配给同一台server,此时这台服务器是尚未满负荷的。
    否则就将这个请求分配给连接数最小的server,并以它作为下一次分配的首先考虑。

上一篇下一篇

猜你喜欢

热点阅读