作家
登录

关于负载均衡的一切:总结与思考

作者: 来源: 2018-01-05 16:03:56 阅读 我要评论

  •    length = len(weighted_list) 
  •    ret = weighted_list[cur[0] % length] 
  •  cur[0] = (cur[0] + 1) % length 
  •    return ret 
  • 这个就更好懂得了,随机选择一个节点办事,按照概率,只要请求数量足够多,那么也能达到绝对均衡的效不雅。并且实现简单很多

    1. def random_choose(server_lst):  
    2. import random  
    3. random.seed()  
    4. return random.choice(server_lst) 

    加权随机算法(random)

    如同加权轮训算法至于轮训算法一样,也是在随机的时刻惹人不合节点的权重,实现也很类似。

    1. def weight_random_choose(servers): 
    2.     import random 
    3.     random.seed() 
    4.     weighted_list = [] 
    5.     for k, v in servers.iteritems(): 
    6.         weighted_list.extend([k] * v) 
    7.     return random.choice(weighted_list) 

    在这篇文┞仿中提到,负载均衡是一种推模型,必定会选出一个办事节点,然后把请求推送过来。而换一种思路,应用消息队列,就变成潦攀拉模型:余暇的办事节点主动去拉取请求进行处理,各个节点的负载天然也是均衡的。消息队列比拟负载均衡好处在于,办事节点不会被大年夜量请求冲垮,同时增长办事节点加倍轻易;缺点也很明显,请求不是事实处理的。

    当然,如不雅节点列表以及权重变更不大年夜,那么也可以对所有节点归一化,然后按概率区间选择

    1. def normalize_servers(servers): 
    2. normalized_servers = {}  
    3. total = sum(servers.values())  
    4. cur_sum = 0  
    5. for k, v in servers.iteritems():  
    6. normalized_servers[k] = 1.0 * (cur_sum + v) / total  
    7. cur_sum += v  
    8. return normalized_servers   
    9. def weight_random_choose_ex(normalized_servers):  
    10. import random, operator  
    11. random.seed()  
    12. rand = random.random()  
    13. for k, v in sorted(normalized_servers.iteritems(), key = operator.itemgetter(1)):  
    14. if v >= rand:  
    15. return k 
    16. else 
    17. assert False'Error normalized_servers with rand %s ' % rand 

    哈希法(hash)

    根据客户端的IP,或者请求的“Key”,计算出一个hash值,然后对节点数量取模。好处就是,同一个请求可以或许分派到同样的办事节点,这对于“有状况”的办事很有须要

    1. def hash_choose(request_info, server_lst):  

        推荐阅读

        无服务器化是云计算的未来吗?

      【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞? 大年夜多半云平台的软件都是弗成知的,这些平台闪开辟人员可以决定若何精确地设计和解决问题。但谷歌的做法>>>详细阅读


      本文标题:关于负载均衡的一切:总结与思考

      地址:http://www.17bianji.com/lsqh/40284.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)