[发明专利]分布式负载均衡方法和装置有效
申请号: | 201510112774.8 | 申请日: | 2015-03-13 |
公开(公告)号: | CN104702691B | 公开(公告)日: | 2017-12-01 |
发明(设计)人: | 曾康;彭勇飞;田红波 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L12/803 |
代理公司: | 北京龙双利达知识产权代理有限公司11329 | 代理人: | 王君,许振新 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分布式 负载 均衡 方法 装置 | ||
技术领域
本发明实施例涉及计算机领域,并且更具体地,涉及分布式负载均衡方法和装置。
背景技术
分布式系统中可以提供更为强大的处理能力,但是如果分布式系统的一个集群出现了负载不均衡的问题,那么负载最大的机器将成为影响系统整体表现的瓶颈和短板,称为单点瓶颈。为了避免单点瓶颈,必须保证分布式系统的动态负载均衡,以达到最大限度的提高资源利用率,从而提升整个分布式系统的处理能力。
负载不均匀包括数据不均匀和流量不均衡。在通常情况下,热点数据虽然因为访问频率较高对负载的贡献率相对较大,但是热点数据的占比通常较低,相反所有非热点数据对整个节点负载的贡献率总和相对较高。所以在通常情况下只要保证数据在整个集群中的所有节点上均匀分布,就可以做到分布式集群的负载均衡。
分布式系统中的数据可以分成多个数据分片,每个数据分片称为一个分区。分布式系统中的一个节点可以拥有一个或多个分区。为了提高系统的可靠性和容错性,分布式系统往往会存储一份数据的多个副本,其中一个为主副本,其他为备副本,由主副本对外提供服务。为最大限度利用服务器资源,集群的每个节点上都有部分主分区和部分备分区,不提供专门的节点只做数据备份。分布式系统的负载均衡问题就转化为所有主分区和备分区在集群节点上均匀分布的问题。
分布式系统除了提供更强的处理能力,还需要能够弹性扩展和具有高可靠性。弹性扩展的能力就是集群可以灵活的scale-out(扩容)和scale-in(缩容),高可靠性的基本要求就是要保证集群没有单点故障。一个好的分布式系统,不仅要能处理节点扩容、缩容和节点故障等场景,同时需要保证扩容、缩容和节点故障后整个系统也能负载均衡,正常的提供服务。
开源内存网格hazelcast提供了一种分布式系统中节点个数发生变化时的负载均衡方法。将分布式集群上数据的哈希空间分成多个等份,每一份就是一个分区,每个分区都有多个副本。分配主分区时,先采用Round-Robin方式将所有未分配的主分区分配到所有节点上,再从负载重的节点上移出多余主分区到负载低的节点上,达到主分区的均匀分布。分配备分区时,方法类似,不同之处在于需要先判断当前节点上是否已经存在该备分区对应的主分区。如果已经存在,则需要将备分区分配到其他节点上。这个过程只是重新计算分区分布,不做数据迁移。新的分区分布计算完成后,与老的分区分布进行对比就可以知道哪些分区存储的节点位置发生了,对这些分区进行数据迁移,就可以使集群重新负载均衡。
现有方案单点故障后数据负载将被多个节点分担,但是比较难保证数据负载被其他节点完全均匀分担,可能造成负载不均衡。当集群单点故障或缩容后,为保证数据均匀分布,需要重新调整主分区在各个节点上的分布情况,存在大量数据迁移操作。
发明内容
本发明实施例提供一种分布式负载均衡方法和分布式负载均衡装置,能够集群单点故障或缩容后,尽可能减少节点间的数据迁移操作,提高集群处理故障或缩容的效率。
第一方面,提供了一种分布式负载均衡方法,应用于分布式系统,该分布式系统的集群中包括多个节点和多个主分区,每个主分区对应于至少一个备分区,该方法包括:在该多个节点上分配该多个主分区,使得任意两个节点上的主分区个数差值小于第一预定阈值;在该多个节点上分配该多个主分区,使得任意两个节点上的主分区个数差值小于第一预定阈值;将该多个主分区中的第一主分区对应的第一备分区分配到多个第二类节点中,使得该第二类节点中任意两个节点上该第一备分区个数之差都小于第二预定阈值,其中,该第二类节点为该第一主分区中第一类节点以外的节点,该第一类节点为该第一主分区所在的节点,或该第一主分区所在的节点所属的分组的节点;将该多个第二类节点中的高负载节点的至少一个该第一备分区移动到该多个第二类节点中的低负载节点上,其中,该高负载节点的分区个数大于第三预定阈值,该低负载节点的分区个数小于第四预定阈值。
结合第一方面,在第一种可能的实现方式中,将该多个第二类节点中的高负载节点的至少一个该第一备分区移动到该多个第二类节点中的低负载节点上具体实现为:获取该第一备分区所分配的节点集合;将该节点集合分别与该第一主分区的所有第二类节点中该高负载节点的集合及该低负载节点的集合求交集,其中该节点集合与该高负载节点的集合的交集为第一交集,该节点集合与该低负载节点的集合的交集为第二交集;如果该第一交集中的第一节点存在该第一备分区,且该第二交集中的第二节点不存在该第一备分区,则将该第一备分区从该第一节点移动到该第二节点中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510112774.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种防盗式边柜
- 下一篇:机械联动式投件防盗装置