CN105338109B - 分片调度方法、装置及分布式服务器系统 - Google Patents
分片调度方法、装置及分布式服务器系统 Download PDFInfo
- Publication number
- CN105338109B CN105338109B CN201510812434.6A CN201510812434A CN105338109B CN 105338109 B CN105338109 B CN 105338109B CN 201510812434 A CN201510812434 A CN 201510812434A CN 105338109 B CN105338109 B CN 105338109B
- Authority
- CN
- China
- Prior art keywords
- fragment
- node
- server
- migration
- host node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Abstract
本公开是关于一种分片调度方法、装置及分布式服务器系统,其中,分片调度方法包括:获得当前分布式服务器系统中每个服务器的权重;根据权重为每个服务器分配对应的分片数量,并将对应的分片数量通知对应的服务器,以使服务器保持对应的分片数量。上述分片调度方法、装置及分布式服务器系统,通过获得每个服务器的权重,并根据权重为每个服务器分配对应的分片数量,使得服务器可以保持对应的分片数量,从而达到灵活满足线上负载能力的目的。
Description
技术领域
本公开涉及通信技术领域,尤其涉及一种分片调度方法、装置及分布式服务器系统。
背景技术
随着计算机技术和互联网技术的飞速发展,基于互联网的社交应用软件应运而生,例如,微博、微信等。社交应用软件可以为用户提供一种即时交互的平台,例如,两个用户可以通过两台安装了相同的应用软件的通信终端进行信息的分享和交流等。
由于社交应用软件通常具有海量使用用户且遍布全国各地,因此,需要服务器具有极大的处理能力,于是出现了分布式服务器系统。
目前的分布式服务器系统包括位于不同地区的服务器,并且为每个地区服务器设置相同的负载能力,但是,当某个地区出现爆炸性消息时,该地区的服务器需要处理的信息量会陡增,然而目前该地区的服务器无法有效地提供服务,甚至会出现宕机的情况。
发明内容
本公开实施例提供一种分片调度方法、装置及分布式服务器系统,用以解决目前分布式服务器系统无法灵活满足线上负载能力的问题。
根据本公开实施例的第一方面,提供一种分片调度方法,包括:
获得当前分布式服务器系统中每个服务器的权重;
根据所述权重为每个服务器分配对应的分片数量,并将对应的分片数量通知对应的服务器,以使所述服务器保持对应的分片数量。
在一实施例中,所述每个服务器均包含主节点和从节点;所述每个服务器通过自己的主节点保存对应数量的分片,通过从节点备份其他服务器主节点保存的分片。
在一实施例中,当所述每个服务器包含三个节点时,第一个节点为所述主节点,第二个节点为所述从节点,第三个节点为所述第二个节点的从节点。
在一实施例中,所述方法还包括:
基于预设原则为所述从节点分配分片,以使所述从节点保存对应的分片;所述预设原则包括与当前服务器主节点分配到的分片保持互斥的原则以及与当前服务器主节点分配到的分片数量接近的原则。
在一实施例中,所述基于预设原则为所述从节点分配分片,包括:
基于所述预设原则获得所述从节点的所有分片分配方式,并计算所有分片分配方式对应的平衡量估计值;
从所有的平衡量估计值中找到最小平衡量估计值,并记录对应的分片分配方式,根据所述分片分配方式为所述从节点分配对应的分片。
在一实施例中,所述平衡量估计值等于所有服务器的主节点和从节点的分片数量差的平方和。
在一实施例中,所述方法还包括:
检测所述每个服务器的权重是否发生改变,若发生改变,则根据改变前后的权重获得当前每个服务器主节点的分片迁移信息;
根据计算出的当前每个服务器主节点的分片迁移信息向对应服务器主节点发送迁入或迁出指令,以使对应服务器主节点迁入或迁出对应数量的分片。
在一实施例中,所述方法还包括:
在所述向对应服务器主节点发送迁入或迁出指令之后,获得所有服务器的主节点和从节点间相同分片的数量和,并将所述数量和作为互斥量进行保存;
计算每个服务器的主节点和从节点的分片数量差,并根据所述分片数量差和所述互斥量获得每个服务器从节点的分片迁移信息;
根据每个服务器从节点的分片迁移信息向对应从节点发送迁入或迁出指令,以使所述对应从节点迁入或迁出对应的分片。
在一实施例中,所述根据改变前后的权重获得当前每个服务器主节点的分片迁移信息,包括:
根据改变前后的权重获得当前每个服务器主节点的分片迁移值;
对所述分片迁移值的整数部分按照由小到大的顺序进行排序,并基于排序后的整数部分和预设迁移方式获得主节点分片的第一迁移信息,所述预设迁移方式包括首尾迁移方式或倒序迁移方式;
对所述分片迁移值的小数部分按照由小到大的顺序进行排序,并基于排序后的小数部分和所述预设迁移方式获得主节点分片的第二迁移信息;
根据所述主节点分片的第一迁移信息和所述主节点分片的第二迁移信息获得每个服务器主节点的分片迁移信息。
在一实施例中,所述根据所述分片数量差和所述互斥量获得每个服务器从节点的分片迁移信息,包括:
对所有服务器的所述分片数量差进行排序,根据排序结果和首尾迁移方式获得从节点分片的第一迁移信息;
针对根据所述从节点分片的第一迁移信息进行迁移后的服务器,若仍存在分片数量差,则按照当前分片数量差由小到大的顺序进行排序,并根据互斥量和顺序迁移方式获得从节点分片的第二迁移信息;
根据所述从节点分片的第一迁移信息和第二迁移信息获得每个服务器从节点的分片迁移信息。
根据本公开实施例的第二方面,提供一种分片调度装置,所述装置包括:
获得模块,被配置为获得当前分布式服务器系统中每个服务器的权重;
分配通知模块,被配置为根据所述获得模块获得的所述权重为每个服务器分配对应的分片数量,并将对应的分片数量通知对应的服务器,以使所述服务器保持对应的分片数量。
在一实施例中,所述分片调度装置所在的分布式服务器系统中的每个服务器均包含主节点和从节点;所述每个服务器通过自己的主节点保存对应数量的分片,通过从节点备份其他服务器主节点保存的分片。
在一实施例中,当所述每个服务器包含三个节点时,第一个节点为所述主节点,第二个节点为所述从节点,第三个节点为所述第二个节点的从节点。
在一实施例中,所述装置还包括:
从节点分片分配模块,被配置为基于预设原则为所述从节点分配分片,以使所述从节点保存对应的分片;所述预设原则包括与当前服务器主节点分配到的分片保持互斥的原则以及与当前服务器主节点分配到的分片数量接近的原则。
在一实施例中,所述从节点分片分配模块包括:
计算子模块,被配置为基于所述预设原则获得所述从节点的所有分片分配方式,并计算所有分片分配方式对应的平衡量估计值;
记录分配子模块,被配置为从所有的平衡量估计值中找到最小平衡量估计值,并记录对应的分片分配方式,根据所述分片分配方式为所述从节点分配对应的分片。
在一实施例中,所述平衡量估计值等于所有服务器的主节点和从节点的分片数量差的平方和。
在一实施例中,所述装置还包括:
检测获得模块,被配置为检测所述每个服务器的权重是否发生改变,若发生改变,则根据改变前后的权重获得当前每个服务器主节点的分片迁移信息;
第一发送模块,被配置为根据计算出的当前每个服务器主节点的分片迁移信息向对应服务器主节点发送迁入或迁出指令,以使对应服务器主节点迁入或迁出对应数量的分片。
在一实施例中,所述装置还包括:
获得保存模块,被配置为在所述第一发送模块向对应服务器主节点发送迁入或迁出指令之后,获得所有服务器的主节点和从节点间相同分片的数量和,并将所述数量和作为互斥量进行保存;
迁移信息获得模块,被配置为计算每个服务器的主节点和从节点的分片数量差,并根据所述分片数量差和所述互斥量获得每个服务器从节点的分片迁移信息;
第二发送模块,被配置为根据每个服务器从节点的分片迁移信息向对应从节点发送迁入或迁出指令,以使所述对应从节点迁入或迁出对应的分片。
在一实施例中,所述检测获得模块包括:
迁移值获得子模块,被配置为根据改变前后的权重获得当前每个服务器主节点的分片迁移值;
第一迁移信息获得子模块,被配置为对所述分片迁移值的整数部分按照由小到大的顺序进行排序,并基于排序后的整数部分和预设迁移方式获得主节点分片的第一迁移信息,所述预设迁移方式包括首尾迁移方式或倒序迁移方式;
第二迁移信息获得子模块,被配置为对所述分片迁移值的小数部分按照由小到大的顺序进行排序,并基于排序后的小数部分和所述预设迁移方式获得主节点分片的第二迁移信息;
迁移信息获得子模块,被配置为根据所述主节点分片的第一迁移信息和所述主节点分片的第二迁移信息获得每个服务器主节点的分片迁移信息。
在一实施例中,所述迁移信息获得模块包括:
第一迁移信息获得子模块,被配置为对所有服务器的所述分片数量差进行排序,根据排序结果和首尾迁移方式获得从节点分片的第一迁移信息;
第二迁移信息获得子模块,被配置为针对根据所述从节点分片的第一迁移信息进行迁移后的服务器,若仍存在分片数量差,则按照当前分片数量差由小到大的顺序进行排序,并根据互斥量和顺序迁移方式获得从节点分片的第二迁移信息;
迁移信息获得子模块,被配置为根据所述从节点分片的第一迁移信息和第二迁移信息获得每个服务器从节点的分片迁移信息。
根据本公开实施例的第三方面,提供一种分布式服务器系统,所述系统包括控制器和多个服务器,其中:
所述控制器包括上述分片调度装置;
所述多个服务器,被配置为对应保持所述控制器分配的分片数量。
根据本公开实施例的第四方面,提供一种分片调度装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获得当前分布式服务器系统中每个服务器的权重;
根据所述权重为每个服务器分配对应的分片数量,并将对应的分片数量通知对应的服务器,以使所述服务器保持对应的分片数量。
本公开的实施例提供的技术方案可以包括以下有益效果:通过获得每个服务器的权重,并根据权重为每个服务器分配对应的分片数量,使得服务器可以保持对应的分片数量,从而达到灵活满足线上负载能力的目的。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种分布式服务器系统的架构图。
图2是根据一示例性实施例示出的一种分片调度方法的流程图。
图3是根据一示例性实施例示出的一种服务器的主从节点间的关系示意图。
图4是根据一示例性实施例示出的一种从节点的分片调度方法的流程图。
图5a是根据一示例性实施例示出的一种主节点的分片调度方法的流程图。
图5b是根据一示例性实施例示出的一种获得服务器主节点的分片迁移信息的流程图。
图6a是根据一示例性实施例示出的一种获得主节点的分片迁移信息的过程图一。
图6b是根据一示例性实施例示出的一种获得主节点的分片迁移信息的过程图二。
图6c是根据一示例性实施例示出的一种获得主节点的分片迁移信息的过程图三。
图6d是根据一示例性实施例示出的一种获得主节点的分片迁移信息的过程图四。
图7a是根据一示例性实施例示出的另一种获得主节点的分片迁移信息的过程图一。
图7b是根据一示例性实施例示出的另一种获得主节点的分片迁移信息的过程图二。
图8a是根据一示例性实施例示出的另一种从节点的分片调度方法的流程图。
图8b是根据一示例性实施例示出的一种获得从节点的分片迁移信息的流程图。
图9a是根据一示例性实施例示出的一种获得从节点的分片迁移信息的过程图一。
图9b是根据一示例性实施例示出的一种获得从节点的分片迁移信息的过程图二。
图9c是根据一示例性实施例示出的一种获得从节点的分片迁移信息的过程图三。
图10是根据一示例性实施例示出的一种分片调度装置的框图。
图11a是根据一示例性实施例示出的另一种分片调度装置的框图。
图11b是根据一示例性实施例示出的另一种分片调度装置的框图。
图11c是根据一示例性实施例示出的另一种分片调度装置的框图。
图11d是根据一示例性实施例示出的另一种分片调度装置的框图。
图11e是根据一示例性实施例示出的另一种分片调度装置的框图。
图11f是根据一示例性实施例示出的另一种分片调度装置的框图。
图12是根据一示例性实施例示出的一种适用于分片调度装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种分布式服务器系统的架构图,如图1所示,该分布式服务器系统包括控制器11和多个服务器12,其中:
控制器被配置为获得每个服务器的权重,并根据获得的权重为每个服务器分配对应的分片数量;多个服务器被配置为对应保持控制器分配的分片数量。
图2是根据一示例性实施例示出的一种分片调度方法的流程图,该分片调度方法可应用在如图1所示架构的分布式服务器系统中的控制器上,如图2所示,该分片调度方法包括:
在步骤S201中,获得当前分布式服务器系统中每个服务器的权重。
上述服务器是指位于不同地区的服务器,该实施例中的控制器可通过监控不同地区的消息量或不同地区服务器的承载量等方式来获得每个服务器的权重。
在步骤S202中,根据权重为每个服务器分配对应的分片数量,并将对应的分片数量通知对应的服务器,以使服务器保持对应的分片数量。
在该实施例中,根据权重为每个服务器分配对应的分片数量,可以达到灵活满足线上负载能力的目的。
上述分片调度方法实施例,通过获得每个服务器的权重,并根据权重为每个服务器分配对应的分片数量,使得服务器可以保持对应的分片数量,从而达到灵活满足线上负载能力的目的。
在本公开如图1所示系统中的所有服务器均包含主节点和从节点,每个服务器通过自己的主节点保存对应数量的分片,通过从节点备份其他服务器主节点保存的分片。
由图3可见,本公开实施例中的所有服务器的结构相同,相对于传统的一主一备两台服务器架构,本公开实施例中可以节省一台备用服务器,且本公开中的所有服务器均为主服务器,形成主主服务器对等结构,而主服务器逻辑上的从服务器随机散列分布在其它服务器上,也即所有服务器之间互为主备关系。这样,若当前服务器宕机,则可以从其他服务器的从节点中找到备份分片。
为了对数据进行多重备份,该实施例中的每个服务器节点可以包含多个节点,当包含n个节点时,可以对分片进行n-1次备份,例如,可以如图3所示,具有三个节点。当有三个节点时,可以对分片进行双重备份。
需要说明的是,上述主节点和从节点是相对关系,以图3所示的每个服务器包含三个节点为例,可以将第一个节点作为主节点,第二个节点作为从节点,而第三个节点可以将第二个节点作为自己的逻辑主节点,也即自己是第二个节点的逻辑从节点,从节点从属于主节点。
通过图3所示结构的服务器可以实现分片的双重备份,这样,可以在多个服务器宕机后,仍能通过其他机器的从节点找到对应的分片信息。
在本公开实施例中,控制器在为从节点分配分片时需要基于以下原则:第一、与当前服务器主节点分配到的分片保持互斥的原则,例如,假设主节点分配到的分片为分片1-3,则当前服务器的从节点不可以分配到分片1-3,也即可以分配到其他服务器主节点的分片;第二,尽量保持与主节点具有相同数量的分片,由于主节点的分片数量是控制器基于当前服务器的权重分配的,则表明当前服务器具有相应的承载能力,因此,可以根据当前服务器的承载能力确定从节点的分片数量,也即尽量保持从节点分片数量接近主节点的分片数量。当控制器为从节点分配好分片后,从节点被配置为接收并保存控制器分配的分片,以达到备份的目的。
图4是根据一示例性实施例示出的一种从节点的分片调度方法的流程图,如图4所示,从节点的分片调度方法包括:
在步骤S401中,基于上述预设原则获得从节点的所有分片分配方式,并计算所有分片分配方式对应的平衡量估计值。
在该实施例中,平衡量估计值等于所有服务器的主节点和从节点的分片数量差的平方和,假设,平衡量估计值V=A^2+B^2+C^2……,其中,A代表服务器1的主节点和从节点的分片数量差,B代表代表服务器2的主节点和从节点的分片数量差,以此类推。
假设,A+B=C,则(A+B)^2=C^2;由此可以推出:A^2+B^2<C^2,所以尽量把主节点和从节点的分片数量差“平摊”到不同的服务器。
由于V=A^2+B^2+C^2……,V值越小,主节点和从节点就越平衡。基于这个结论,可以采用递归、回溯与贪心的算法,枚举出所有可能的分片分配方式,并计算所有分片分配方式对应的平衡量估计值,然后找到最小平衡量估计值。
在步骤S402中,从所有的平衡量估计值中找到最小平衡量估计值,并记录对应的分片分配方式,根据分片分配方式为从节点分配对应的分片。
由于需要进行大量的递归计算,为了减少递归深度,优化时间复杂度,可以进行“剪枝”操作,在该实施例中,可以借助第二类斯特林函数(stirling)完成分配方式计算。
另外,为了提高计算速度,可以通过调用多个线程进行并行计算。例如,有128分片,ABC三个服务器,每个分片都递归地往服务器里面放,以A服务器为起点,A服务器有分片1与没有分片1两种情况,于是得出递归的第一层共有128*2=256种分支,于是可以通过调用256个线程进行分支上的递归“并行计算”,求出最小V值。
在获得最小平衡量估计值时,记录与最小平衡量估计值对应的分片分配方式,并可据此为服务器从节点分配分片。
由此可见,通过上述实施例,可以为服务器从节点分配分片,并且使每个服务器主节点和从节点的分片数量尽可能地一致。
在本公开实施例中,可能由于各种原因引起服务器的权重发生变化,这就需要对不同服务器的主节点分片进行迁移,图5a是根据一示例性实施例示出的一种主节点的分片调度方法流程图,如图5a所示,该主节点的分片调度方法包括:
在步骤S501中,检测每个服务器的权重是否发生改变,若发生改变,则执行S502,若未发生改变,则继续检测每个服务器的权重是否发生改变。
在该实施例中,有以下情况可以引起服务器的权重发生改变:
第一种情况,因部分地区的消息量发生变化,引起服务器权重发生改变;
第二种情况,因注册新的服务器或解注册旧的服务器,引起服务器权重发生改变。
在步骤S502中,根据改变前后的权重获得当前每个服务器主节点的分片迁移信息。
在步骤S503中,根据计算出的当前每个服务器主节点的分片迁移信息向对应服务器主节点发送迁入或迁出指令,以使对应服务器主节点迁入或迁出对应数量的分片。
服务器主节点在接收到对应的迁入或迁出指令后,根据对应指令迁入或迁出对应数量的分片。
如图5b所示,上述步骤S502可以包括以下步骤:
在步骤S5021中,根据改变前后的权重获得当前每个服务器主节点的分片迁移值。
在步骤S5022中,对分片迁移值的整数部分按照由小到大的顺序进行排序,并基于排序后的整数部分和预设迁移方式获得主节点分片的第一迁移信息,预设迁移方式包括首尾迁移方式或顺序迁移方式。
在步骤S5023中,对分片迁移值的小数部分按照由小到大的顺序进行排序,并基于排序后的小数部分和与整数部分同样的迁移方式获得主节点分片的第二迁移信息。
在步骤S5024中,根据主节点分片的第一迁移信息和主节点分片的第二迁移信息获得每个服务器主节点的分片迁移信息。
下面以引起服务器的权重发生改变的两种情况为例,对图5b进行详细说明:
针对第一种情况,控制器通过上述步骤S5021-5023获得当前每个服务器主节点的分片迁移信息的过程可以为:
根据改变前后的权重计算出每个服务器主节点的分片迁移值,对该分片迁移值的整数部分按照由小到大的顺序进行排序,基于排序后的整数部分和首尾迁移方式获得主节点分片的第一迁移信息,然后,对小数部分按照由小到大的顺序进行排序,并基于排序后的小数部分和首尾迁移方式获得主节点分片的第二迁移信息,由此可以获得每个服务器主节点的分片迁移量和分片迁移路径。
假设,计算出的每个服务器主节点的分片迁移值如图6a所示,从图6a可以看出,服务器1主节点的分片迁出值分别为5.5,服务器2主节点的分片迁入值分别为2.4,服务器3主节点的分片迁入值分别为5.2,服务器4主节点的分片迁出值为2.1,并对整数部分按照由小到大的顺序进行排序,然后基于排序后的整数部分和首尾迁移方式,获得主节点分片的第一迁移信息为:由服务器1的主节点向服务器3的主节点迁入5个分片,由服务器4的主节点向服务器2的主节点迁入2个分片;然后对小数部分按照由小到大的顺序进行排序,排序后的结果如图6b所示;之后根据图6b排序结果和首尾迁移方式,获得主节点分片的第二迁移信息为:由服务器1的主节点向服务器2的主节点迁入1个分片,由服务器4的主节点向服务器3的主节点迁入1个分片,如图6c所示;控制器在获得上述第一迁移信息和第二迁移信息后,向对应的服务器主节点发送迁移指令,服务器主节点在接收到上述迁移指令后迁出或迁入对应的分片,使得最终迁入值和迁出值互相抵消,如图6d所示;通过图6a-图6d可以获得服务器1主节点的分片迁出量为6;服务器2主节点的分片迁入量为3;服务器3主节点的分片迁入量为6;服务器4主节点的分片迁出量为3,迁移路径可参见图6a和图6c。
需要说明的是,在获得上述第一迁移信息和第二迁移信息的过程中使用了首尾迁移方式,首尾迁移方式来源于首尾凹凸迁移算法,下面示例性地介绍下首尾凹凸迁移算法的核心思想:
如图6a所示,可以将迁出值画在水平线上方(即迁出值代表凸出部分),迁入值画在水平线下方(即迁入值代表凹进部分),水平线代表数值为0,其中,凸出部分和凹进部分的大小与对应的迁出值和迁入值大小对应,在对迁出值和迁入值排序过程中,可以将迁出值看作正数,迁入值看作负数;然后对整数部分按照由小到大的顺序进行排序,排序的目的是为了更好地展现迁移需求,对排序后的整数部分采用首尾迁移,即从具有最大迁出值的服务器(如图6a中的服务器1)主节点迁出整数个分片,并将迁出的分片迁入具有最大迁入值的服务器(如图6a中的服务器3)主节点,依次类推,同样地,对小数部分也是按照上述原理进行迁移的,通过该算法,可以保证服务器节点间的相互迁移量尽可能地少。
针对第二种情况,控制器根据改变前后的权重计算出当前每个服务器主节点的分片迁移信息的过程可以为:
当新注册的服务器为一个时,根据改变前后的权重计算出当前每个服务器主节点的分片迁移值,对该分片迁移值的整数部分按照由小到大的顺序进行排序,基于排序后的整数部分和倒序迁移方式获得主节点分片的第一迁移信息,然后,对小数部分按照由小到大的顺序进行排序,并基于排序后的小数部分和倒序迁移方式获得主节点分片的第二迁移信息,由此可以获得每个服务器主节点的分片迁移量和分片迁移路径。
假设,控制器计算出的包括新注册服务器在内的每个服务器主节点的分片迁移值如图7a所示,从图7a可以看出,服务器1-服务器4主节点的分片迁出值分别为3.4、2.9、5.1和1.6,新注册的服务器主节点的分片迁入值为13;对整数部分按照由小到大的顺序进行排序后的结果如图7a所示,根据排序结果和倒序迁移方式(即按照由大到小的顺序进行迁移的方式),获得主节点分片的第一迁移信息为:由服务器3的主节点向新注册服务器的主节点迁入5个分片,由服务器1的主节点向新注册服务器的主节点迁入3个分片,由服务器2的主节点向新注册服务器的主节点迁入2个分片,由服务器4的主节点向新注册服务器的主节点迁入1个分片(若此时服务器按照该迁移信息进行迁移,则新注册的服务器主节点已有11个分片,还差两个分片);然后,对小数部分按照由小到大的顺序进行排序的结果如图7b所示,然后根据排序结果和倒序迁移方式,获得主节点分片的第二迁移信息为:由服务器2的主节点向新注册服务器的主节点迁入1个分片,由服务器4的主节点向新注册服务器的主节点迁入1个分片,如图7b所示;控制器在获得上述第一迁移信息和第二迁移信息后,向对应的服务器主节点发送迁移指令,服务器主节点在接收到上述迁移指令后迁出或迁入对应的分片,从而完成主节点分片的迁移,通过上述过程可以获得服务器1主节点的分片迁出量为3;服务器2主节点的分片迁出量为3;服务器3主节点的分片迁出量为5;服务器4主节点的分片迁出量为2,新注册服务器主节点的分片迁入量为13;且服务器1-4主节点的分片迁出路径均为从自己所在的服务器迁出至新注册服务器,新注册服务器主节点的分片迁入路径为从服务器1-4迁入至自己所在的服务器。
需要说明的是,在获得上述第一迁移信息和第二迁移信息的过程中首先对分片迁移值的整数部分和小数部分按照由小到大的顺序进行排序,然后对排序结果进行倒序迁移的目的是为了首先迁移数值较大的分片,以使得服务器节点间的相互迁移量尽可能地少。
由此可见,控制器通过上述实施例,获得主节点的分片迁移信息后,可以向对应的服务器主节点发送迁移指令,从而使服务器可以根据迁移指令迁移对应数量的分片,以达到保持控制器根据新的权重分配的分片数量的目的。
在本公开实施例中,在服务器主节点间进行分片迁移后,有可能出现同一服务器中的主节点和从节点具有相同的分片的情况,而基于主从节点分片互斥的原则,同一服务器中的主从节点不可以具有相同的分片,因此,需要对从节点的分片进行迁移。
图8a是根据一示例性实施例示出的另一种从节点的分片调度方法的流程图,如图8a所示,该方法包括:
在步骤S801中,获得所有服务器的主节点和从节点间相同分片的数量和,并将数量和作为互斥量进行保存。
在该实施例中,计算所有服务器的主节点和从节点间相同分片的数量和,例如,共有3个服务器,第一个服务器的主从节点都具有分片2、3,第一个服务器的主从节点都具有分片4,第三个服务器的主从节点都具有分片7,则互斥量为4。
在步骤S802中,计算每个服务器的主节点和从节点的分片数量差,并根据分片数量差和互斥量获得每个服务器从节点的分片迁移信息。
在该实施例中,首先利用图6a中采用的首尾迁移方式根据分片数量差获得从节点分片的第一迁移信息,然后采用首尾迁移方式根据互斥量获得从节点分片的第二迁移信息。
在步骤S803中,根据每个服务器从节点的分片迁移信息向对应从节点发送迁入或迁出指令,以使对应从节点迁入或迁出对应的分片。
服务器在接收控制器发送的迁入或迁出指令后,可以根据对应的指令迁入或迁出对应的分片,从而消除互斥的分片,并使主节点和从节点的分片数量尽可能地一致。
如图8b所示,上述步骤S802可以包括以下步骤:
在步骤S8021中,对所有服务器主从节点的分片数量差进行排序,根据排序结果和首尾迁移方式获得从节点分片的第一迁移信息。
该实施例中的,主从节点的分片数量差为从节点的分片数量减去从节点的分片数量;例如,服务器1的从节点的分片数量为8,从节点的分片数量为6,则服务器1主从节点的分片数量差为2;又例如,服务器2的从节点的分片数量为8,从节点的分片数量为10,则服务器2主从节点的分片数量差为-2。
在步骤S8022中,针对根据从节点分片的第一迁移信息进行迁移后的服务器,若仍存在分片数量差,则按照当前分片数量差由小到大的顺序进行排序,并根据互斥量和顺序迁移方式获得从节点分片的第二迁移信息。
在步骤S8023中,根据从节点分片的第一迁移信息和第二迁移信息获得每个服务器从节点的分片迁移信息。
假设,计算出的每个服务器主从节点的分片数量差如图9a所示,并对分片数量差进行排序,并根据图9a所示的排序结果和首尾迁移方式获得的从节点分片的第一迁移信息为:由服务器1向服务器2和服务器3分片迁入1个分片,如图9b所示;然后判断根据第一迁移信息进行迁移后的服务器主从节点是否仍存在分片数量差,若仍存在分片数量差,则按照当前分片数量差由小到大的顺序进行排序,并根据排序结果和互斥量顺序迁移方式获得的从节点分片的第一迁移信息为:将4个互斥分片迁入服务器3,1个互斥分片迁入服务器2,如图9c所示;需要说明的是,选择互斥分片时也要遵守主从节点分片互斥的原则。
由此可见,通过该实施例,可以清除服务器的主从节点间互斥的分片,并使主从节点的分片数量尽可能地一致。
图10是根据一示例性实施例示出的一种分片调度装置的框图,如图10所示,该分片调度装置包括获得模块21和分配通知模块22,其中:
获得模块21被配置为获得当前分布式服务器系统中每个服务器的权重;分配通知模块22被配置为根据获得模块21获得的权重为每个服务器分配对应的分片数量,并将对应的分片数量通知对应的服务器,以使服务器保持对应的分片数量。
其中,分片调度装置所在的分布式服务器系统中的每个服务器均包含主节点和从节点;每个服务器通过自己的主节点保存对应数量的分片,通过从节点备份其他服务器主节点保存的分片。
另外,当每个服务器包含三个节点时,第一个节点为主节点,第二个节点为从节点,第三个节点为第二个节点的从节点。
上述分片调度装置实施例,通过获得模块获得每个服务器的权重,并通过分配通知模块根据权重为每个服务器分配对应的分片数量,使得服务器可以保持对应的分片数量,从而达到灵活满足线上负载能力的目的。
图11a是根据一示例性实施例示出的另一种分片调度装置的框图,该装置还可包括:
从节点分片分配模块23,被配置为基于预设原则为从节点分配分片,以使从节点保存对应的分片;预设原则包括与当前服务器主节点分配到的分片保持互斥的原则以及与当前服务器主节点分配到的分片数量接近的原则。
图11b是根据一示例性实施例示出的另一种分片调度装置的框图,如图11b所示,在上述图11a所示实施例的基础上,从节点分片分配模块23可包括计算子模块231和记录分配子模块232,其中:
计算子模块231被配置为基于预设原则获得从节点的所有分片分配方式,并计算所有分片分配方式对应的平衡量估计值;记录分配子模块232被配置为从所有的平衡量估计值中找到最小平衡量估计值,并记录对应的分片分配方式,根据分片分配方式为从节点分配对应的分片。
在该实施例中,上述平衡量估计值等于所有服务器的主节点和从节点的分片数量差的平方和。
图11c是根据一示例性实施例示出的另一种分片调度装置的框图,如图11a所示,在上述图11a所示实施例的基础上,该装置还可包括检测获得模块24和第一发送模块25,其中:
检测获得模块24被配置为检测每个服务器的权重是否发生改变,若发生改变,则根据改变前后的权重获得当前每个服务器主节点的分片迁移信息;第一发送模块25被配置为根据计算出的当前每个服务器主节点的分片迁移信息向对应服务器主节点发送迁入或迁出指令,以使对应服务器主节点迁入或迁出对应数量的分片。
图11d是根据一示例性实施例示出的另一种分片调度装置的框图,如图11d所示,在上述图11c所示实施例的基础上,该装置还可包括获得保存模块26、迁移信息获得模块27和第二发送模块28,其中:
获得保存模块26被配置为在第一发送模块25向对应服务器主节点发送迁入或迁出指令之后,获得所有服务器的主节点和从节点间相同分片的数量和,并将数量和作为互斥量进行保存;迁移信息获得模块27被配置为计算每个服务器的主节点和从节点的分片数量差,并根据分片数量差和互斥量获得每个服务器从节点的分片迁移信息;第二发送模块28被配置为根据每个服务器从节点的分片迁移信息向对应从节点发送迁入或迁出指令,以使对应从节点迁入或迁出对应的分片。
图11e是根据一示例性实施例示出的另一种分片调度装置的框图,如图11e所示,在上述图11c所示实施例的基础上,检测获得模块24可包括迁移值获得子模块241、第一迁移信息获得子模块242、第二迁移信息获得子模块243和迁移信息获得子模块244,其中:
迁移值获得子模块241被配置为根据改变前后的权重获得当前每个服务器主节点的分片迁移值;第一迁移信息获得子模块242被配置为对分片迁移值的整数部分按照由小到大的顺序进行排序,并基于排序后的整数部分和预设迁移方式获得主节点分片的第一迁移信息,预设迁移方式包括首尾迁移方式或倒序迁移方式;第二迁移信息获得子模块243被配置为对分片迁移值的小数部分按照由小到大的顺序进行排序,并基于排序后的小数部分和预设迁移方式获得主节点分片的第二迁移信息;迁移信息获得子模块244被配置为根据主节点分片的第一迁移信息和主节点分片的第二迁移信息获得每个服务器主节点的分片迁移信息。
图11f是根据一示例性实施例示出的另一种分片调度装置的框图,如图11f所示,在上述图11d所示实施例的基础上,迁移信息获得模块27可包括第一迁移信息获得子模块271、第二迁移信息获得子模块272和迁移信息获得子模块273,其中:
第一迁移信息获得子模块271,被配置为对所有服务器的分片数量差进行排序,根据排序结果和首尾迁移方式获得从节点分片的第一迁移信息;第二迁移信息获得子模块272,被配置为针对根据从节点分片的第一迁移信息进行迁移后的服务器,若仍存在分片数量差,则按照当前分片数量差由小到大的顺序进行排序,并根据互斥量和顺序迁移方式获得从节点分片的第二迁移信息;迁移信息获得子模块273,被配置为根据从节点分片的第一迁移信息和第二迁移信息获得每个服务器从节点的分片迁移信息。
关于上述实施例中的装置,其中各个模块执行操作的具体方式和达到的效果已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
另外,本公开实施例还提供了一种分布式服务器系统,如图1所示,其中,控制器中可包括图10-11f所示结构和功能的模块,此处不赘述,服务器的结构和功能可参见图3,此处不赘述。
上述分片调度系统实施例,通过控制器获得每个服务器的权重,并通过分配通知模块根据权重为每个服务器分配对应的分片数量,使得服务器可以保持对应的分片数量,从而达到灵活满足线上负载能力的目的。
图12是根据一示例性实施例示出的一种适用于分片分配装置的框图。例如,装置1200可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图12,装置1200可以包括以下一个或多个组件:处理组件1202,存储器1204,电源组件1206,多媒体组件1208,音频组件1210,输入/输出(I/O)的接口1212,传感器组件1214,以及通信组件1216。
处理组件1202通常控制装置1200的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件1202可以包括一个或多个处理器1220来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1202可以包括一个或多个模块,便于处理组件1202和其他组件之间的交互。例如,处理部件1202可以包括多媒体模块,以方便多媒体组件1208和处理组件1202之间的交互。
存储器1204被配置为存储各种类型的数据以支持在设备1200的操作。这些数据的示例包括用于在装置1200上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1204可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电力组件1206为装置1200的各种组件提供电力。电力组件1206可以包括电源管理系统,一个或多个电源,及其他与为装置1200生成、管理和分配电力相关联的组件。
多媒体组件1208包括在所述装置1200和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1208包括一个前置摄像头和/或后置摄像头。当设备1200处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件1210被配置为输出和/或输入音频信号。例如,音频组件1210包括一个麦克风(MIC),当装置1200处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1204或经由通信组件1216发送。在一些实施例中,音频组件1210还包括一个扬声器,用于输出音频信号。
I/O接口1212为处理组件1202和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件1214包括一个或多个传感器,用于为装置1200提供各个方面的状态评估。例如,传感器组件1214可以检测到设备1200的打开/关闭状态,组件的相对定位,例如所述组件为装置1200的显示器和小键盘,传感器组件1214还可以检测装置1200或装置1200一个组件的位置改变,用户与装置1200接触的存在或不存在,装置1200方位或加速/减速和装置1200的温度变化。传感器组件1214可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1214还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1214还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件1216被配置为便于装置1200和其他设备之间有线或无线方式的通信。装置1200可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信部件1216经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件1216还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置1200可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1204,上述指令可由装置1200的处理器1220执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (21)
1.一种分片调度方法,其特征在于,所述方法包括:
获得当前分布式服务器系统中每个服务器的权重,每个服务器位于不同地区,每个服务器的权重通过监控不同地区的消息量或不同地区服务器的承载量获得;
根据所述权重为每个服务器分配对应的分片数量,并将对应的分片数量通知对应的服务器,以使所述服务器保持对应的分片数量。
2.根据权利要求1所述的分片调度方法,其特征在于,所述每个服务器均包含主节点和从节点;所述每个服务器通过自己的主节点保存对应数量的分片,通过从节点备份其他服务器主节点保存的分片。
3.根据权利要求2所述的分片调度方法,其特征在于,当所述每个服务器包含三个节点时,第一个节点为所述主节点,第二个节点为所述从节点,第三个节点为所述第二个节点的从节点。
4.根据权利要求2或3所述的分片调度方法,其特征在于,所述方法还包括:
基于预设原则为所述从节点分配分片,以使所述从节点保存对应的分片;所述预设原则包括与当前服务器主节点分配到的分片保持互斥的原则以及与当前服务器主节点分配到的分片数量接近的原则。
5.根据权利要求4所述的分片调度方法,其特征在于,所述基于预设原则为所述从节点分配分片,包括:
基于所述预设原则获得所述从节点的所有分片分配方式,并计算所有分片分配方式对应的平衡量估计值,所述平衡量估计值等于所有服务器的主节点和从节点的分片数量差的平方和;
从所有的平衡量估计值中找到最小平衡量估计值,并记录对应的分片分配方式,根据所述分片分配方式为所述从节点分配对应的分片。
6.根据权利要求4所述的分片调度方法,其特征在于,所述方法还包括:
检测所述每个服务器的权重是否发生改变,若发生改变,则根据改变前后的权重获得当前每个服务器主节点的分片迁移信息;
根据计算出的当前每个服务器主节点的分片迁移信息向对应服务器主节点发送迁入或迁出指令,以使对应服务器主节点迁入或迁出对应数量的分片。
7.根据权利要求6所述的分片调度方法,其特征在于,所述方法还包括:
在所述向对应服务器主节点发送迁入或迁出指令之后,获得所有服务器的主节点和从节点间相同分片的数量和,并将所述数量和作为互斥量进行保存;
计算每个服务器的主节点和从节点的分片数量差,并根据所述分片数量差和所述互斥量获得每个服务器从节点的分片迁移信息;
根据每个服务器从节点的分片迁移信息向对应从节点发送迁入或迁出指令,以使所述对应从节点迁入或迁出对应的分片。
8.根据权利要求6所述的分片调度方法,其特征在于,所述根据改变前后的权重获得当前每个服务器主节点的分片迁移信息,包括:
根据改变前后的权重获得当前每个服务器主节点的分片迁移值;
对所述分片迁移值的整数部分按照由小到大的顺序进行排序,并基于排序后的整数部分和预设迁移方式获得主节点分片的第一迁移信息,所述预设迁移方式包括首尾迁移方式或倒序迁移方式;
对所述分片迁移值的小数部分按照由小到大的顺序进行排序,并基于排序后的小数部分和所述预设迁移方式获得主节点分片的第二迁移信息;
根据所述主节点分片的第一迁移信息和所述主节点分片的第二迁移信息获得每个服务器主节点的分片迁移信息。
9.根据权利要求7所述的分片调度方法,其特征在于,所述根据所述分片数量差和所述互斥量获得每个服务器从节点的分片迁移信息,包括:
对所有服务器的所述分片数量差进行排序,根据排序结果和首尾迁移方式获得从节点分片的第一迁移信息;
针对根据所述从节点分片的第一迁移信息进行迁移后的服务器,若仍存在分片数量差,则按照当前分片数量差由小到大的顺序进行排序,并根据互斥量和顺序迁移方式获得从节点分片的第二迁移信息;
根据所述从节点分片的第一迁移信息和第二迁移信息获得每个服务器从节点的分片迁移信息。
10.一种分片调度装置,其特征在于,所述装置包括:
获得模块,被配置为获得当前分布式服务器系统中每个服务器的权重,每个服务器位于不同地区,每个服务器的权重通过监控不同地区的消息量或不同地区服务器的承载量获得;
分配通知模块,被配置为根据所述获得模块获得的所述权重为每个服务器分配对应的分片数量,并将对应的分片数量通知对应的服务器,以使所述服务器保持对应的分片数量。
11.根据权利要求10所述的分片调度装置,其特征在于,所述分片调度装置所在的分布式服务器系统中的每个服务器均包含主节点和从节点;所述每个服务器通过自己的主节点保存对应数量的分片,通过从节点备份其他服务器主节点保存的分片。
12.根据权利要求11所述的分片调度装置,其特征在于,当所述每个服务器包含三个节点时,第一个节点为所述主节点,第二个节点为所述从节点,第三个节点为所述第二个节点的从节点。
13.根据权利要求11或12所述的分片调度装置,其特征在于,所述装置还包括:
从节点分片分配模块,被配置为基于预设原则为所述从节点分配分片,以使所述从节点保存对应的分片;所述预设原则包括与当前服务器主节点分配到的分片保持互斥的原则以及与当前服务器主节点分配到的分片数量接近的原则。
14.根据权利要求13所述的分片调度装置,其特征在于,所述从节点分片分配模块包括:
计算子模块,被配置为基于所述预设原则获得所述从节点的所有分片分配方式,并计算所有分片分配方式对应的平衡量估计值,所述平衡量估计值等于所有服务器的主节点和从节点的分片数量差的平方和;
记录分配子模块,被配置为从所有的平衡量估计值中找到最小平衡量估计值,并记录对应的分片分配方式,根据所述分片分配方式为所述从节点分配对应的分片。
15.根据权利要求13所述的分片调度装置,其特征在于,所述装置还包括:
检测获得模块,被配置为检测所述每个服务器的权重是否发生改变,若发生改变,则根据改变前后的权重获得当前每个服务器主节点的分片迁移信息;
第一发送模块,被配置为根据计算出的当前每个服务器主节点的分片迁移信息向对应服务器主节点发送迁入或迁出指令,以使对应服务器主节点迁入或迁出对应数量的分片。
16.根据权利要求15所述的分片调度装置,其特征在于,所述装置还包括:
获得保存模块,被配置为在所述第一发送模块向对应服务器主节点发送迁入或迁出指令之后,获得所有服务器的主节点和从节点间相同分片的数量和,并将所述数量和作为互斥量进行保存;
迁移信息获得模块,被配置为计算每个服务器的主节点和从节点的分片数量差,并根据所述分片数量差和所述互斥量获得每个服务器从节点的分片迁移信息;
第二发送模块,被配置为根据每个服务器从节点的分片迁移信息向对应从节点发送迁入或迁出指令,以使所述对应从节点迁入或迁出对应的分片。
17.根据权利要求15所述的分片调度装置,其特征在于,所述检测获得模块包括:
迁移值获得子模块,被配置为根据改变前后的权重获得当前每个服务器主节点的分片迁移值;
第一迁移信息获得子模块,被配置为对所述分片迁移值的整数部分按照由小到大的顺序进行排序,并基于排序后的整数部分和预设迁移方式获得主节点分片的第一迁移信息,所述预设迁移方式包括首尾迁移方式或倒序迁移方式;
第二迁移信息获得子模块,被配置为对所述分片迁移值的小数部分按照由小到大的顺序进行排序,并基于排序后的小数部分和所述预设迁移方式获得主节点分片的第二迁移信息;
迁移信息获得子模块,被配置为根据所述主节点分片的第一迁移信息和所述主节点分片的第二迁移信息获得每个服务器主节点的分片迁移信息。
18.根据权利要求16所述的分片调度装置,其特征在于,所述迁移信息获得模块包括:
第一迁移信息获得子模块,被配置为对所有服务器的所述分片数量差进行排序,根据排序结果和首尾迁移方式获得从节点分片的第一迁移信息;
第二迁移信息获得子模块,被配置为针对根据所述从节点分片的第一迁移信息进行迁移后的服务器,若仍存在分片数量差,则按照当前分片数量差由小到大的顺序进行排序,并根据互斥量和顺序迁移方式获得从节点分片的第二迁移信息;
迁移信息获得子模块,被配置为根据所述从节点分片的第一迁移信息和第二迁移信息获得每个服务器从节点的分片迁移信息。
19.一种分布式服务器系统,其特征在于,所述系统包括控制器和多个服务器,其中:
所述控制器包括如权利要求10-18任一项所述的分片调度装置;
所述多个服务器,被配置为对应保持所述控制器分配的分片数量。
20.一种分片调度装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获得当前分布式服务器系统中每个服务器的权重,每个服务器位于不同地区,每个服务器的权重通过监控不同地区的消息量或不同地区服务器的承载量获得;
根据所述权重为每个服务器分配对应的分片数量,并将对应的分片数量通知对应的服务器,以使所述服务器保持对应的分片数量。
21.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1-9中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510812434.6A CN105338109B (zh) | 2015-11-20 | 2015-11-20 | 分片调度方法、装置及分布式服务器系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510812434.6A CN105338109B (zh) | 2015-11-20 | 2015-11-20 | 分片调度方法、装置及分布式服务器系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105338109A CN105338109A (zh) | 2016-02-17 |
CN105338109B true CN105338109B (zh) | 2018-10-12 |
Family
ID=55288383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510812434.6A Active CN105338109B (zh) | 2015-11-20 | 2015-11-20 | 分片调度方法、装置及分布式服务器系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105338109B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106372161A (zh) * | 2016-08-31 | 2017-02-01 | 天津南大通用数据技术股份有限公司 | 一种分布式数据库数据备份分片部署方法及装置 |
CN114330879B (zh) * | 2021-12-29 | 2022-09-16 | 蔷薇大树科技有限公司 | 一种多维度约束的订单分配方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102244685A (zh) * | 2011-08-11 | 2011-11-16 | 中国科学院软件研究所 | 一种支持负载均衡的分布式缓存动态伸缩方法及系统 |
CN103034664A (zh) * | 2011-10-10 | 2013-04-10 | 上海盛霄云计算技术有限公司 | 控制数据库数据迁移的方法、系统及装置 |
CN103229487A (zh) * | 2012-12-27 | 2013-07-31 | 华为技术有限公司 | 分布式存储系统中的分区平衡方法、装置及服务器 |
CN103281367A (zh) * | 2013-05-22 | 2013-09-04 | 北京蓝汛通信技术有限责任公司 | 一种负载均衡方法及装置 |
CN103338228A (zh) * | 2013-05-30 | 2013-10-02 | 江苏大学 | 基于双加权最小连接算法的云计算负载均衡调度算法 |
CN103902617A (zh) * | 2012-12-28 | 2014-07-02 | 华为技术有限公司 | 分布式数据库同步方法和系统 |
-
2015
- 2015-11-20 CN CN201510812434.6A patent/CN105338109B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102244685A (zh) * | 2011-08-11 | 2011-11-16 | 中国科学院软件研究所 | 一种支持负载均衡的分布式缓存动态伸缩方法及系统 |
CN103034664A (zh) * | 2011-10-10 | 2013-04-10 | 上海盛霄云计算技术有限公司 | 控制数据库数据迁移的方法、系统及装置 |
CN103229487A (zh) * | 2012-12-27 | 2013-07-31 | 华为技术有限公司 | 分布式存储系统中的分区平衡方法、装置及服务器 |
CN103902617A (zh) * | 2012-12-28 | 2014-07-02 | 华为技术有限公司 | 分布式数据库同步方法和系统 |
CN103281367A (zh) * | 2013-05-22 | 2013-09-04 | 北京蓝汛通信技术有限责任公司 | 一种负载均衡方法及装置 |
CN103338228A (zh) * | 2013-05-30 | 2013-10-02 | 江苏大学 | 基于双加权最小连接算法的云计算负载均衡调度算法 |
Also Published As
Publication number | Publication date |
---|---|
CN105338109A (zh) | 2016-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3079082B1 (en) | Method and apparatus for album display | |
JP6286621B2 (ja) | 連絡先情報推薦方法、装置、プログラム及び記録媒体 | |
EP3171554B1 (en) | Method and device for displaying a message | |
CN105955765A (zh) | 应用预加载方法及装置 | |
CN104267877B (zh) | 表情图片的显示方法及装置、电子设备 | |
CN104125162B (zh) | 网络资源的访问处理方法及装置 | |
CN104301308B (zh) | 通话控制方法及装置 | |
CN106250430A (zh) | 智能设备列表的排序方法及装置 | |
CN105703932A (zh) | 日志记录上传方法、日志记录接收方法、终端及服务器 | |
CN106559631A (zh) | 视频处理方法及装置 | |
CN106407365A (zh) | 图片共享方法及装置 | |
CN105912450A (zh) | 应用的状态信息显示方法及装置 | |
CN104636453A (zh) | 非法用户资料识别方法及装置 | |
CN107423063A (zh) | 多窗口处理方法、装置及设备 | |
CN105872254A (zh) | 转发消息的方法及装置 | |
CN107040591A (zh) | 一种对客户端进行控制的方法及装置 | |
CN108965611B (zh) | 拍摄界面的切换方法、装置、设备及存储介质 | |
CN106648730A (zh) | 异常应用的处理方法和装置 | |
CN104636164A (zh) | 启动页面生成方法及装置 | |
CN107948093A (zh) | 调节终端设备中应用网速的方法及装置 | |
CN105101078B (zh) | 信息提醒方法、终端及服务器 | |
CN105338109B (zh) | 分片调度方法、装置及分布式服务器系统 | |
CN107085823A (zh) | 人脸图像处理方法及装置 | |
CN109565735A (zh) | 网络连接管理的方法、装置和系统 | |
CN108446178A (zh) | 优化卡顿的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |