分片调度方法、装置及分布式服务器系统的制作方法_2

文档序号:9581868阅读:来源:国知局
量,使得服务器可以保持对应的分片数量,从而达到灵活满足线上负载能力的目的。
[0070]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
【附图说明】
[0071]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
[0072]图1是根据一示例性实施例示出的一种分布式服务器系统的架构图。
[0073]图2是根据一示例性实施例示出的一种分片调度方法的流程图。
[0074]图3是根据一示例性实施例示出的一种服务器的主从节点间的关系示意图。
[0075]图4是根据一示例性实施例示出的一种从节点的分片调度方法的流程图。
[0076]图5a是根据一示例性实施例示出的一种主节点的分片调度方法的流程图。
[0077]图5b是根据一示例性实施例示出的一种获得服务器主节点的分片迀移信息的流程图。
[0078]图6a是根据一示例性实施例示出的一种获得主节点的分片迀移信息的过程图
ο
[0079]图6b是根据一示例性实施例示出的一种获得主节点的分片迀移信息的过程图
--ο
[0080]图6c是根据一示例性实施例示出的一种获得主节点的分片迀移信息的过程图_- ο
[0081]图6d是根据一示例性实施例示出的一种获得主节点的分片迀移信息的过程图四。
[0082]图7a是根据一示例性实施例示出的另一种获得主节点的分片迀移信息的过程图
ο
[0083]图7b是根据一示例性实施例示出的另一种获得主节点的分片迀移信息的过程图
--ο
[0084]图8a是根据一示例性实施例示出的另一种从节点的分片调度方法的流程图。
[0085]图8b是根据一示例性实施例示出的一种获得从节点的分片迀移信息的流程图。
[0086]图9a是根据一示例性实施例示出的一种获得从节点的分片迀移信息的过程图
ο
[0087]图9b是根据一示例性实施例示出的一种获得从节点的分片迀移信息的过程图
--ο
[0088]图9c是根据一示例性实施例示出的一种获得从节点的分片迀移信息的过程图
_- ο
[0089]图10是根据一示例性实施例示出的一种分片调度装置的框图。
[0090]图11a是根据一示例性实施例示出的另一种分片调度装置的框图。
[0091]图lib是根据一示例性实施例示出的另一种分片调度装置的框图。
[0092]图11c是根据一示例性实施例示出的另一种分片调度装置的框图。
[0093]图lid是根据一示例性实施例示出的另一种分片调度装置的框图。
[0094]图lie是根据一示例性实施例示出的另一种分片调度装置的框图。
[0095]图1lf是根据一示例性实施例示出的另一种分片调度装置的框图。
[0096]图12是根据一示例性实施例示出的一种适用于分片调度装置的框图。
【具体实施方式】
[0097]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
[0098]图1是根据一示例性实施例示出的一种分布式服务器系统的架构图,如图1所示,该分布式服务器系统包括控制器11和多个服务器12,其中:
[0099]控制器被配置为获得每个服务器的权重,并根据获得的权重为每个服务器分配对应的分片数量;多个服务器被配置为对应保持控制器分配的分片数量。
[0100]图2是根据一示例性实施例示出的一种分片调度方法的流程图,该分片调度方法可应用在如图1所示架构的分布式服务器系统中的控制器上,如图2所示,该分片调度方法包括:
[0101]在步骤S201中,获得当前分布式服务器系统中每个服务器的权重。
[0102]上述服务器是指位于不同地区的服务器,该实施例中的控制器可通过监控不同地区的消息量或不同地区服务器的承载量等方式来获得每个服务器的权重。
[0103]在步骤S202中,根据权重为每个服务器分配对应的分片数量,并将对应的分片数量通知对应的服务器,以使服务器保持对应的分片数量。
[0104]在该实施例中,根据权重为每个服务器分配对应的分片数量,可以达到灵活满足线上负载能力的目的。
[0105]上述分片调度方法实施例,通过获得每个服务器的权重,并根据权重为每个服务器分配对应的分片数量,使得服务器可以保持对应的分片数量,从而达到灵活满足线上负载能力的目的。
[0106]在本公开如图1所示系统中的所有服务器均包含主节点和从节点,每个服务器通过自己的主节点保存对应数量的分片,通过从节点备份其他服务器主节点保存的分片。
[0107]由图3可见,本公开实施例中的所有服务器的结构相同,相对于传统的一主一备两台服务器架构,本公开实施例中可以节省一台备用服务器,且本公开中的所有服务器均为主服务器,形成主主服务器对等结构,而主服务器逻辑上的从服务器随机散列分布在其它服务器上,也即所有服务器之间互为主备关系。这样,若当前服务器宕机,则可以从其他服务器的从节点中找到备份分片。
[0108]为了对数据进行多重备份,该实施例中的每个服务器节点可以包含多个节点,当包含η个节点时,可以对分片进行η-1次备份,例如,可以如图3所示,具有三个节点。当有三个节点时,可以对分片进行双重备份。
[0109]需要说明的是,上述主节点和从节点是相对关系,以图3所示的每个服务器包含三个节点为例,可以将第一个节点作为主节点,第二个节点作为从节点,而第三个节点可以将第二个节点作为自己的逻辑主节点,也即自己是第二个节点的逻辑从节点,从节点从属于主节点。
[0110]通过图3所示结构的服务器可以实现分片的双重备份,这样,可以在多个服务器宕机后,仍能通过其他机器的从节点找到对应的分片信息。
[0111]在本公开实施例中,控制器在为从节点分配分片时需要基于以下原则:第一、与当前服务器主节点分配到的分片保持互斥的原则,例如,假设主节点分配到的分片为分片1-3,则当前服务器的从节点不可以分配到分片1-3,也即可以分配到其他服务器主节点的分片;第二,尽量保持与主节点具有相同数量的分片,由于主节点的分片数量是控制器基于当前服务器的权重分配的,则表明当前服务器具有相应的承载能力,因此,可以根据当前服务器的承载能力确定从节点的分片数量,也即尽量保持从节点分片数量接近主节点的分片数量。当控制器为从节点分配好分片后,从节点被配置为接收并保存控制器分配的分片,以达到备份的目的。
[0112]图4是根据一示例性实施例示出的一种从节点的分片调度方法的流程图,如图4所示,从节点的分片调度方法包括:
[0113]在步骤S401中,基于上述预设原则获得从节点的所有分片分配方式,并计算所有分片分配方式对应的平衡量估计值。
[0114]在该实施例中,平衡量估计值等于所有服务器的主节点和从节点的分片数量差的平方和,假设,平衡量估计值V = A~2+B~2+C~2……,其中,A代表服务器1的主节点和从节点的分片数量差,B代表代表服务器2的主节点和从节点的分片数量差,以此类推。
[0115]假设,A+B = C,则(A+B)'2 = C'2 ;由此可以推出:A~2+B~2〈C~2,所以尽量把主节点和从节点的分片数量差“平摊”到不同的服务器。
[0116]由于V = A~2+B~2+C~2……,V值越小,主节点和从节点就越平衡。基于这个结论,可以采用递归、回溯与贪心的算法,枚举出所有可能的分片分配方式,并计算所有分片分配方式对应的平衡量估计值,然后找到最小平衡量估计值。
[0117]在步骤S402中,从所有的平衡量估计值中找到最小平衡量估计值,并记录对应的分片分配方式,根据分片分配方式为从节点分配对应的分片。
[0118]由于需要进行大量的递归计算,为了减少递归深度,优化时间复杂度,可以进行“剪枝”操作,在该实施例中,可以借助第二类斯特林函数(Stirling)完成分配方式计算。
[0119]另外,为了提高计算速度,可以通过调用多个线程进行并行计算。例如,有128分片,ABC三个服务器,每个分片都递归地往服务器里面放,以A服务器为起点,A服务器有分片1与没有分片1两种情况,于是得出递归的第一层共有128*2 = 256种分支,于是可以通过调用256个线程进行分支上的递归“并行计算”,求出最小V值。
[0120]在获得最小平衡量估计值时,记录与最小平衡量估计值对应的分片分配方式,并可据此为服务器从节点分配分片。
[0121]由此可见,通过上述实施例,可以为服务器从节点分配分片,并且使每个服务器主节点和从节点的分片数量尽可能地一致。
[0122]在本公开实施例中,可能由于各种原因引起服务器的权重发生变化,这就需要对不同服务器的主节点分片进行迀移,图5a是根据一示例性实施例示出的一种主节点的分片调度方法流程图,如图5a所示,该主节点的分片调度方法包括:
[0123]在步骤S501中,检测每个服务器的权重是否发生改变,若发生改变,则执行S502,若未发生改变,则继续检测每个服务器的权重是否发生改变。
[0124]在该实施例中,有以下情况可以引起服务器的权重发生改变:
[0125]第一种情况,因部分地区的消息量发生变化,引起服务器权重发生改变;
[0126]第二种情况,因注册新的服务器或解注册旧的服务器,引起服务器权重发生改变。
[0127]在步骤S502中,根据改变前后的权重获得当前每个服务器主节点的分片迀移信息。
[0128]在步骤S503中,根据计算出的当前每个服务器主节点的分片迀移信息向对应服务器主节点发送迀入或迀出指令,以使对应服务器主节点迀入或迀出对应数量的分片。
[0129]服务器主节点在接收到对应的迀入或迀出指令后,根据对应指令迀入或迀出对应
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1