首页> 中国专利> 分布式一致性系统中主节点的选举方法、装置及系统

分布式一致性系统中主节点的选举方法、装置及系统

摘要

本说明书提供分布式一致性系统中主节点的选举方法、装置及系统,其中所述分布式一致性系统包括至少三个节点,所述选举方法包括:所述至少三个节点中的提议者节点向预设数量的接受者节点发送项目数据信息;所述至少三个节点中的接受者节点响应于提议者节点发送的项目数据信息生成对应的响应信息,并将所述响应信息返回至所述提议者节点;所述至少三个节点中的主节点向所述分布式一致性系统中的每个从节点同步目标项目数据信息,通过本方法,借助数据同步机制本身完成主节点选举,避免引入单独一套主节点选举机制所带来的系统负载型,实现了更加轻量、高可靠的主节点选举方法。

著录项

  • 公开/公告号CN113297236A

    专利类型发明专利

  • 公开/公告日2021-08-24

    原文格式PDF

  • 申请/专利权人 阿里巴巴集团控股有限公司;

    申请/专利号CN202011247825.5

  • 发明设计人 朱云锋;严祥光;鞠进涛;

    申请日2020-11-10

  • 分类号G06F16/23(20190101);G06F16/27(20190101);

  • 代理机构11637 北京智信禾专利代理有限公司;

  • 代理人吴肖肖

  • 地址 英属开曼群岛大开曼资本大厦一座四层847号邮箱

  • 入库时间 2023-06-19 12:19:35

说明书

技术领域

本说明书涉及计算机技术领域,特别涉及一种分布式一致性系统中主节点的选举方法。本说明书同时涉及一种分布式一致性系统中主节点的选举装置,一种分布式一致性系统中主节点的选举方法和系统,一种计算设备,以及一种计算机可读存储介质。

背景技术

随着计算机技术的发展,分布式一致性系统在实际应用中也得到了广泛的应用,为日常的出行、人工智能、服务发现、订阅通知等提供一致性服务。

现有的分布式一致性系统中,通常基于主节点的数据同步协议实现,整个系统的运行划分为两个阶段,首先是主节点选举,确认可以提议值的主节点,然后进入服务阶段,由主节点直接为项目的访问请求提供服务,再由主节点向分布式一致性系统中的从节点同步消息,但在实际应用中发现,主节点选举机制与数据同步机制分离的设计对分布式一致性系统的服务高可靠性是有影响的,首先主节点选举机制的正确性需要单独验证,增加了整个分布式一致性系统的复杂性,其次,主节点状态可用性与数据同步可用性是独立分开维护,也就存在其中一个不可用导致系统整体不可用且无法恢复的可能,例如,主节点状态可用性维持正常,而数据同步功能不可用,此时分布式一致性系统就会陷入无法主动选举,而又无法提供正常服务的境地。

基于此,需要更简单更便捷的方法进行分布式一致性系统中主节点的选举和后续的维持。

发明内容

有鉴于此,本说明书实施例提供了一种分布式一致性系统中主节点的选举方法。本说明书同时涉及一种分布式一致性系统中主节点的选举装置,一种分布式一致性系统中主节点的选举方法和系统,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。

根据本说明书实施例的第一方面,提供了一种分布式一致性系统中主节点的选举系统,所述分布式一致性系统包括至少三个节点,所述系统包括:

所述至少三个节点中的提议者节点,被配置为向预设数量的接受者节点发送项目数据信息;

所述至少三个节点中的接受者节点,被配置为响应于提议者节点发送的项目数据信息生成对应的响应信息,并将所述响应信息返回至所述提议者节点;

所述至少三个节点中的主节点,被配置为向所述分布式一致性系统中的每个从节点同步目标项目数据信息,其中,所述至少三个节点中的主节点和从节点根据接受者节点返回的响应信息确定。

可选的,所述主节点,进一步被配置为在所述主节点的选举租约时间段内接收到用户请求的情况下,向每个所述从节点同步所述用户请求。

可选的,所述主节点,进一步被配置为在所述主节点的选举租约时间段内未接收到用户请求的情况下,在所述主节点的选举租约时间段到期时向每个所述从节点同步心跳请求。

可选的,每个所述从节点,被配置为在从节点的选举租约时间段内接收到所述主节点同步的用户请求或心跳请求的情况下,根据接收到用户请求或心跳请求的时间点续期所述从节点的选举租约时间段,并向所述主节点发送请求响应信息;

所述主节点,进一步被配置为在接收到预设数量的从节点发送的请求响应信息的情况下,根据主节点同步用户请求或心跳请求的时间点起续期主节点的选举租约时间段。

可选的,所述项目数据信息包括项目数据编号;

所述至少三个节点中的接受者节点,进一步被配置为接收提议者节点发送的项目数据编号,并判断所述接受者节点中是否存储有本地项目数据编号;

若否,将所述项目数据编号存储为本地项目数据编号,并向所述提议者节点返回响应接受信息;

若是,则判断所述本地项目数据编号是否大于所述项目数据编号;

若否,则根据所述项目数据编号更新所述本地项目数据编号,并向所述提议者节点返回响应接受信息;

若是,则向所述提议者节点返回响应拒绝信息。

可选的,所述主节点,进一步被配置为确定接收到预设数量的接受者节点返回的响应接受信息的提议者节点为主节点,确定所述分布式一致性系统中除去主节点的其他节点为从节点。

根据本说明书实施例的第二方面,提供了一种分布式一致性系统中主节点的选举方法,所述分布式一致性系统包括至少三个节点,所述方法包括:

所述至少三个节点中的提议者节点向预设数量的接受者节点发送项目数据信息;

所述至少三个节点中的接受者节点响应于提议者节点发送的项目数据信息生成对应的响应信息,并将所述响应信息返回至所述提议者节点;

所述至少三个节点中的主节点向所述分布式一致性系统中的每个从节点同步目标项目数据信息,其中,所述至少三个节点中的主节点和从节点根据接受者节点返回的响应信息确定。

可选的,所述方法还包括:

所述主节点在所述主节点的选举租约时间段内接收到用户请求的情况下,向每个所述从节点同步所述用户请求。

可选的,所述方法还包括:

所述主节点在所述主节点的选举租约时间段内未接收到用户请求的情况下,在所述主节点的选举租约时间段到期时向每个所述从节点同步心跳请求。

可选的,所述方法还包括:

每个所述从节点在从节点的选举租约时间段内接收到所述主节点同步的用户请求或心跳请求的情况下,根据接收到用户请求或心跳请求的时间点续期所述从节点的选举租约时间段,并向所述主节点发送请求响应信息;

所述主节点在接收到预设数量的从节点发送的请求响应信息的情况下,根据主节点同步用户请求或心跳请求的时间点起续期主节点的选举租约时间段。

可选的,所述项目数据信息包括项目数据编号;

所述至少三个节点中的接受者节点响应于提议者节点发送的项目数据信息生成对应的响应信息,并将所述响应信息返回至所述提议者节点,包括:

所述至少三个节点中的接受者节点接收提议者节点发送的项目数据编号,并判断所述接受者节点中是否存储有本地项目数据编号;

若否,将所述项目数据编号存储为本地项目数据编号,并向所述提议者节点返回响应接受信息;

若是,则判断所述本地项目数据编号是否大于所述项目数据编号;

若否,则根据所述项目数据编号更新所述本地项目数据编号,并向所述提议者节点返回响应接受信息;

若是,则向所述提议者节点返回响应拒绝信息。

可选的,所述至少三个节点中的主节点和从节点根据接受者节点返回的响应信息确定,包括:

所述主节点确定接收到预设数量的接受者节点返回的响应接受信息的提议者节点为主节点;

所述至少三个节点中的除去主节点外的其他节点确定为从节点。

根据本说明书实施例的第三方面,提供了一种分布式一致性系统中主节点的选举方法,应用于分布式一致性系统中的提议者节点,所述方法包括:

向预设数量的接受者节点发送项目数据信息;

接收所述接受者节点返回的响应信息;

基于所述响应信息确定当前提议者节点为所述分布式一致性系统的主节点;

将项目数据信息同步至所述分布式一致性系统中的从节点。

根据本说明书实施例的第四方面,提供了一种分布式一致性系统中主节点的选举装置,应用于分布式一致性系统中的提议者节点,所述装置包括:

发送模块,被配置为向预设数量的接受者节点发送项目数据信息;

接收模块,被配置为接收所述接受者节点返回的响应信息;

确定模块,被配置为基于所述响应信息确定当前提议者节点为所述分布式一致性系统的主节点;

同步模块,被配置为将项目数据信息同步至所述分布式一致性系统中的从节点。

根据本说明书实施例的第五方面,提供了一种计算设备,包括:

存储器和处理器;

所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:

向预设数量的接受者节点发送项目数据信息;

接收所述接受者节点返回的响应信息;

基于所述响应信息确定当前提议者节点为所述分布式一致性系统的主节点;

将项目数据信息同步至所述分布式一致性系统中的从节点。

根据本说明书实施例的第六方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现本说明书实施例第五方面提供的分布式一致性系统中主节点的选举方法的步骤。

本说明书提供的分布式一致性系统中主节点的选举方法,所述分布式一致性系统包括至少三个节点,通过所述至少三个节点中的提议者节点向预设数量的接受者节点发送项目数据信息;所述至少三个节点中的接受者节点响应于提议者节点发送的项目数据信息生成对应的响应信息,并将所述响应信息返回至所述提议者节点;所述至少三个节点中的主节点向所述分布式一致性系统中的每个从节点同步目标项目数据信息。

本说明书一实施例实现的分布式一致性系统中主节点的选举方法,借助数据同步机制本身来完成主节点选举,在分布式一致性系统中,每一轮有且只有一个提议形成共识,当一个节点一旦提议成功,则持续拥有继续提议的权利,即该节点做为主节点,分布式一致性系统中的其他节点在接受了非自己节点的提议形成共识后,则不再主动提议。通过本方法将相互独立的主节点选举机制和数据同步机制融合到一起,避免引入单独一套主节点选举机制所带来的系统负载型,实现了更加轻量、高可靠的主节点选举。

附图说明

图1是本说明书一实施例提供的一种分布式一致性系统的架构示意图;

图2是本说明书一实施例提供的一种分布式一致性系统中主节点的选举方法的流程图;

图3是本说明书一实施例提供的分布式一致性系统中主节点的选举方法中主节点选举租约续租的示意图;

图4是本说明书一实施例提供的分布式一致性系统中主节点的选举方法中续期选举租约时间段的示意图;

图5是本说明书一实施例提供的分布式一致性系统中主节点的选举方法中续期选举租约时间段的示意图;

图6是本说明书一实施例提供的分布式一致性系统中主节点的选举系统的结构示意图;

图7是本说明书一实施例提供的应用于分布式一致性系统中的提议者节点的分布式一致性系统中主节点的选举方法的流程图;

图8是本说明书一实施例提供的应用于分布式一致性系统中的提议者节点的分布式一致性系统中主节点的选举装置的结构示意图;

图9是本说明书一实施例提供的一种计算设备的结构框图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。

在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

首先,对本说明书一个或多个实施例涉及的名词术语进行解释。

分布式一致性协议:简单来说,分布式一致性协议是用来解决一个或多个进程提议了一个值后,系统中所有进程如何对这个值达成一致意见的协议。从最初的Paxos,到后来的Raft,分布式一致性可谓分布式系统的基石。

分布式一致性系统:基于分布式一致性协议构建多副本状态机(ReplicatedState Machine),实现高可用和强一致。分布式一致性协议保证了系统中的多台机器具有相同的状态,运行相同的确定性状态机,进而少数机器故障时整体系统仍能正常工作,我们将这样的系统称为分布式一致性系统。

主节点选举:基于经典Paxos协议实现的分布式一致性系统,多台服务器同时提议数值的时候大概率存在冲突,需要退避并重新提议,系统性能因此会受到极大影响。业界通用的解决方案是引入强Leadership,即通过主节点选举,确定一个主节点专职负责提议,避免冲突发生,提升服务效率。

选举租约:一致性系统的主节点选举,为了确保服务可用性,众服务器认可的领导权是有时间窗口,这个即为选举租约。主节点可以在选举租约有效期内主动提议值,且需要定期续租,所有从节点在租约有效期内承认当前主节点,承诺不主动提议数值。

在本说明书中,提供了一种分布式一致性系统中主节点的选举方法。本说明书同时涉及一种分布式一致性系统中主节点的选举装置,一种分布式一致性系统中主节点的选举方法和系统,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。

下面结合图1和图2对本说明书一实施例提供的分布式一致性系统中主节点的选举方法做进一步解释说明。图1示出了根据本说明书一实施例提供的一种分布式一致性系统的架构示意图,如图1所示所述分布式一致性系统包括节点1、节点2和节点3,每个节点既可以作为提议者节点,也可以做为接受者节点,如节点1可以作为提议者节点1,向接受者节点1、2、3发送项目数据信息1,节点2可以作为提议者节点2,向接受者节点1、2、3发送项目数据信息2,节点3可以作为提议者节点3,向接受者节点1、2、3发送项目数据信息3。

在实际应用中,提议者节点向分布式一致性系统中超过半数的接受者节点发送项目数据信息,如果项目数据信息符合数据同步协议则由接受者节点返回响应接受信息,否则返回响应拒绝信息。

若有一个提议者节点接收到超过半数的接受者节点返回的响应接受信息,则确定当前提议者节点发起的项目数据信息被超过半数的接受者节点接受,若至少有两个提议者节点接收到超过半数的接受者节点返回的响应接受信息,则由接收到超过半数的接受者节点返回响应接受信息的提议者节点继续发送项目数据信息,直至有且只有一个提议者节点的项目数据信息被超过半数的接受者节点接受,以次确定当前提议者节点为主节点。

借助数据同步协议在进行数据同步时,进而完成主节点选举。避免引入单独一套选举机制所带来的协议复杂性,以及选举状态与数据同步两者可用性割裂导致的可靠性问题。

图2示出了根据本说明书一实施例提供的一种分布式一致性系统中主节点的选举方法的流程图,分布式一致性系统包括至少三个节点,所述方法具体包括以下步骤:

步骤202:所述至少三个节点中的提议者节点向预设数量的接受者节点发送项目数据信息。

在实际应用中,提议者节点为项目数据提议发起者,提议者节点可以有多个,分布式一致性系统中的每个节点均可作为数据提议者节点,提议者节点发起的项目数据信息可以是任何操作,项目数据信息一般包括两个字段,[n,v],其中n为项目数据编号,v为项目数据值。由于分布式一致性系统是严格同步、顺序的提议,因此项目数据编号n是严格单调递增的,具有唯一性;项目数据值v则是提议者节点的提议值,项目数据值v在实际应用中可以为一个参数值、一个指令、一段代码等,项目数据值v的具体值以实际应用为准。

在本说明书提供的分布式一致性系统中主节点的选举方法中,如果一个节点接收了非自己节点的提议后并形成了共识,则选择退避,不再主动提议,这样就减少了提议者节点的数量,进而减少了数据同步带来的多次交互的系统资源浪费,提高了数据同步效率。

在本说明书提供的一具体实施例中,以图1为例,每个节点均可做为提议者节点,其中,节点2作为提议者节点2发送项目数据编号为1的项目数据信息至接受者节点2和接受者节点3;节点1作为提议者节点1第发送项目数据编号为2的项目数据信息至接受者节点1和接受者节点2;节点3作为提议者节点3发送项目数据编号为3的项目数据信息至接受者节点2和接受者节点3。

步骤204:所述至少三个节点中的接受者节点响应于提议者节点发送的项目数据信息生成对应的响应信息,并将所述响应信息返回至所述提议者节点。

接受者节点对接收到的每个项目数据信息进行投票,返回响应信息,响应信息包括响应接收信息和响应拒绝信息,并将响应信息返回至项目数据信息对应的提议者节点。

在实际应用中,所述项目数据信息包括项目数据编号n;

相应的,所述至少三个节点中的接受者节点响应于提议者节点发送的项目数据信息生成对应的响应信息,并将所述响应信息返回至所述提议者节点,包括:

所述至少三个节点中的接受者节点接收提议者节点发送的项目数据编号,并判断所述接受者节点中是否存储有本地项目数据编号;

若否,将所述项目数据编号存储为本地项目数据编号,并向所述提议者节点返回响应接受信息;

若是,则判断所述本地项目数据编号是否大于所述项目数据编号;

若否,则根据所述项目数据编号更新所述本地项目数据编号,并向所述提议者节点返回响应接受信息;

若是,则向所述提议者节点返回响应拒绝信息。

当接受者节点是初次接收到项目数据编号时,则将项目数据编号存储到当前节点中,并向提议者节点返回响应接受信息,若接受者节点中存储有本地项目数据编号,则需要判断本地项目数据编号是否大于接收到的项目数据编号,若本地项目数据编号不大于接收到的项目数据编号,则用接收到的项目数据编号更新本地数据编号,并向提议者节点返回响应接收信息,若本地项目数据编号大于接收到的项目数据编号,根据分布式一致性系统的设计,接收到的项目数据信息则会被拒绝,最终有且仅有一个提议者节点的提议被超过半数的接受者节点所接受,则该提议者节点的提议在本轮的数据同步中达成共识。

在本说明书提供的一具体实施例中,沿用上例,提议者节点1发送的项目数据编号为2的消息先到达接受者节点1和接受者节点2,这两个节点均未接受过请求,因此保存项目数据编号2,并承诺不再接收项目数据编号小于2的请求。

之后提议者节点2发送的项目数据编号为1消息到达接受者节点2和接受者节点3,接受者节点3未接收过请求,则保存项目数据编号1,并承诺不再接收项目数据编号小于1的请求,接受者节点2已经接受过项目数据编号2的请求,因此拒绝了提议者节点2发送的项目数据编号1的请求。

提议者节点3发送的项目数据编号为3消息到达接受者节点2和接受者节点3,项目数据编号为3大于接受者节点2上的本地项目数据编号2和接受者节点3上的本地项目数据编号1,则将接受者节点2和接受者节点3接收提议者节点3发送的项目编号为3的请求。

此时提议者节点2由于没有收到过半的回复,则重新发送项目数据编号为4的项目数据信息给接受者节点2和接受者节点3,同上面的操作,接受者节点2和接受者节点4接收了提议者节点2发送的项目数据编号为4的项目数据信息,并向提议者节点2返回了响应接受信息。

至此每个提议者节点均已经接收到了过半数的接受者节点的回复,此时提议者节点1提交了[2,V2]的项目数据信息1,提议者节点2提交了[4,V2]的项目数据信息2,提议者节点3提交了[3,V3]的项目数据信息3,接受者节点1的本地项目数据编号为2,接受者节点2的本地项目数据编号为4,接受者节点3的本地项目数据编号为4。

接受者节点1和接受者节点2接收到提议者节点1提交的项目数据信息1[2,V2],接受者节点1的本地项目数据编号2不小于项目数据信息1的项目数据编号2,则接受者节点1接受项目数据信息1,向提议者节点1返回响应接受信息,接受者节点2的本地项目数据编号4大于项目数据信息1的项目数据编号2,因此接受者节点2拒绝了提议者节点1的提议,返回响应拒绝信息。

接受者节点2和接受者节点3接收到提议者节点2提交的项目数据信息2[4,V2],接受者节点2的本地项目数据编号4不小于项目数据信息2的项目数据编号2,则接受者节点2接收项目数据信息2,向提议者节点2返回响应接收信息,接受者节点3的本地项目数据编号4不小于项目数据信息2的项目数据编号2,则接受者节点3接收项目数据信息2,向提议者节点2返回响应接收信息。

接受者节点2和接受者节点3接收到提议者节点3提交的项目数据信息3[3,V3],接受者节点2的本地项目数据编号4大于项目数据信息3的项目数据编号3,则接受者节点2拒绝了提议者节点3的提议,返回响应拒绝信息,接受者节点3的本地项目数据编号4大于项目数据信息3的项目数据编号3,则接受者节点3拒绝了提议者节点3的提议,返回响应拒绝信息。

至此,过半的接受者节点接收了提议者节点2的提议,则提议者节点2的项目数据信息在本轮的数据同步中达成共识。

步骤206:所述至少三个节点中的主节点向所述分布式一致性系统中的每个从节点同步目标项目数据信息,其中,所述至少三个节点中的主节点和从节点根据接受者节点返回的响应信息确定。

主节点为分布式一致性系统中,处理服务项目的访问请求,并向分布式一致性系统中的其他从节点同步项目数据信息的节点,在本说明书提供的分布式一致性系统中主节点的选举方法中,主节点和从节点是根据接受者节点返回的响应信息确定的。

可选的,所述至少三个节点中的主节点和从节点根据接受者节点返回的响应信息确定,包括:

所述主节点确定接收到预设数量的接受者节点返回的响应接受信息的提议者节点为主节点;

所述至少三个节点中的除去主节点外的其他节点确定为从节点。

在实际应用中,当数据同步的过程中,达成共识的项目数据信息对应的提议者节点即可以认定为所述分布式一致性系统的主节点,除所述主节点外的其他节点均为从节点,借助数据同步协议本身完成主节点选举过程,耦合了主节点选举与数据同步机制,更加简洁、轻量化、高可靠性。

在本说明书提供的一具体实施例中,沿用上例,提议者节点2的项目数据信息在本轮的数据同步中达成共识,则提议者节点2对应的节点2即为所述分布式一致性系统中的主节点,进一步的,节点1和节点3即为分布式一致性系统中的从节点。之后的节点2直接服务项目的访问请求,并将用户的请求同步至每个从节点,达成分布式一致性协议。

在实际应用中,主节点并不是无限期的担任主节点的角色,各个从节点认可的主节点是有时间期限的,即选举租约时间段,在主节点的选举租约时间段内,主节点可以主动提议,并定期续租,从节点在选举租约时间段内承认当前主节点,承诺不主动提议数值,因此在选举出主节点后,还需要有对应的主节点维持机制。

可选的,所述方法还包括:

所述主节点在所述主节点的选举租约时间段内接收到用户请求的情况下,向每个所述从节点同步所述用户请求,或

所述主节点在所述主节点的选举租约时间段内未接收到用户请求的情况下,在所述主节点的选举租约时间段到期时向每个所述从节点同步心跳请求。

在实际应用中,主节点的选举租约续租的时机也是可以由数据同步机制本身来完成,参见图3,图3示出了本说明书实施例提供的分布式一致性系统中主节点的选举方法中主节点选举租约续租的示意图。如图3所示,主节点上有若干个选举租约时间段,在时间点A接收到用户请求X+1,则在时间点A将用户请求X+1同步至每个从节点,当在选举租约时间段内未接收到用户请求的情况下,则在选举租约时间段到期时向从节点同步心跳请求,如心跳请求X+2、心跳请求X+3、心跳请求X+4,在时间点B接收到用户请求X+5,则在时间点B将用户请求X+5同步至每个从节点,需要注意的是,心跳请求仅仅在没有用户请求的情况下,为了保证主节点租约的有效性,由主节点主动构造并发送的请求,并且无论是在主节点选举过程中项目数据信息的同步,还是用户请求、心跳请求的同步,仅仅是请求类别的区别,在同步方式中,使用相同的数据同步机制完成。本说明书提供的分布式一致性系统中主节点的选举方法无需单独引入主节点状态维持机制,也直接利用数据同步机制本身来完成,若在选举租约时间段内用户访问繁忙,则持续会有用户请求产生的提议,则可借助用户请求更新选举租约时间段,若用户访问请求空白,则主节点主动生成一个心跳请求确保更新选举租约时间段。

对应的,所述方法还包括:

每个所述从节点在从节点的选举租约时间段内接收到所述主节点同步的用户请求或心跳请求的情况下,根据接收到用户请求或心跳请求的时间点续期所述从节点的选举租约时间段,并向所述主节点发送请求响应信息;

所述主节点在接收到预设数量的从节点发送的请求响应信息的情况下,根据主节点同步用户请求或心跳请求的时间点起续期主节点的选举租约时间段。

当主节点发送用户请求或心跳请求更新选举租约时间段时,每个从节点也要更新从节点的选举租约时间段,为了保证主节点的主导位置,主节点的选举租约时间段的起始时间一定要早于多数的从节点的选举租约时间段,否则就可能出现多数的从节点因选举租约时间段超时而重新选举新的主节点,导致系统中同一时间段产生两个主节点,进而导致强一致性读等服务的正确性被破坏,因此规定从节点根据接收主节点发送的用户请求或心跳请求的时间点起续期所述从节点的选举租约时间段,而主节点在接收到超过半数的从节点的请求响应信息后,从发送用户请求或心跳请求的时间点起续期主节点的选举租约时间段,通过主节点发送请求和从节点接收请求之间的时间差来确保主节点的选举租约时间段早于从节点的选举租约时间段到期。

参见图4,图4示出了本说明书一实施例提供的分布式一致性系统中主节点的选举方法中续期选举租约时间段的示意图,主节点在时间点X向从节点发送用户请求,从节点在时间点Y接收到用户请求,并向主节点返回请求响应信息,主节点在时间点Z接收到从节点的请求响应信息,对应的,从节点的选举租约时间段从接收到用户请求的时间点Y起开始续期,主节点的选举租约时间段从发送用户请求的时间点X起开始续期,由时间点X和时间点Y之间的时间差,来保证主节点的选举租约时间段的到期时间早于从节点的选举时间段的到期时间。

参见图5,图5示出了本说明书一实施例提供的分布式一致性系统中主节点的选举方法中续期选举租约时间段的示意图,如图5所示,为了安全起见,主节点的选举租约时间段的起始时间早于超过半数的从节点的选举租约时间段的起始时间,这样可以保证主节点的选举租约时间段早于从节点的选举租约时间段到期。

本说明书一实施例实现的分布式一致性系统中主节点的选举方法,借助数据同步机制本身来完成主节点选举,在分布式一致性系统中,每一轮有且只有一个提议形成共识,当一个节点一旦提议成功,则持续拥有继续提议的权利,即该节点做为主节点,分布式一致性系统中的其他节点在接受了非自己节点的提议形成共识后,则不再主动提议。通过本方法将相互独立的主节点选举机制和数据同步机制融合到一起,避免引入单独一套主节点选举机制所带来的系统负载型,实现了更加轻量、高可靠的主节点选举。

其次,在选举出主节点后,通过主节点在分布式一致性系统中主动发起数据同步请求机制主动续期选举租约时间段,从节点在选举租约时间段内退避提议,保证主节点的地位,可以有效提升维持机制的健壮性。

最后,主节点和从节点选择续期选举租约时间段时,主节点从发送请求的时间点计算,而从节点从接受到请求的时间点开始计算,通过主节点发送请求和从节点接收请求的时间差来避免出现双主节点出现,提高分布式一致性系统的处理效率。

图6示出了本说明书一实施例提供的分布式一致性系统中主节点的选举系统的结构示意图,所述分布式一致性系统包括至少三个节点,所述系统包括:

所述至少三个节点中的提议者节点,被配置为向预设数量的接受者节点发送项目数据信息;

所述至少三个节点中的接受者节点,被配置为响应于提议者节点发送的项目数据信息生成对应的响应信息,并将所述响应信息返回至所述提议者节点;

所述至少三个节点中的主节点,被配置为向所述分布式一致性系统中的每个从节点同步目标项目数据信息,其中,所述至少三个节点中的主节点和从节点根据接受者节点返回的响应信息确定。

可选的,所述主节点,进一步被配置为在所述主节点的选举租约时间段内接收到用户请求的情况下,向每个所述从节点同步所述用户请求。

可选的,所述主节点,进一步被配置为在所述主节点的选举租约时间段内未接收到用户请求的情况下,在所述主节点的选举租约时间段到期时向每个所述从节点同步心跳请求。

可选的,每个所述从节点,被配置为在从节点的选举租约时间段内接收到所述主节点同步的用户请求或心跳请求的情况下,根据接收到用户请求或心跳请求的时间点续期所述从节点的选举租约时间段,并向所述主节点发送请求响应信息;

所述主节点,进一步被配置为在接收到预设数量的从节点发送的请求响应信息的情况下,根据主节点同步用户请求或心跳请求的时间点起续期主节点的选举租约时间段。

可选的,所述项目数据信息包括项目数据编号;

所述至少三个节点中的接受者节点,进一步被配置为接收提议者节点发送的项目数据编号,并判断所述接受者节点中是否存储有本地项目数据编号;

若否,将所述项目数据编号存储为本地项目数据编号,并向所述提议者节点返回响应接受信息;

若是,则判断所述本地项目数据编号是否大于所述项目数据编号;

若否,则根据所述项目数据编号更新所述本地项目数据编号,并向所述提议者节点返回响应接受信息;

若是,则向所述提议者节点返回响应拒绝信息。

可选的,所述主节点,进一步被配置为确定接收到预设数量的接受者节点返回的响应接受信息的提议者节点为主节点,确定所述分布式一致性系统中除去主节点的其他节点为从节点。

本说明书一实施例实现的分布式一致性系统中主节点的选举系统,借助数据同步机制本身来完成主节点选举,在分布式一致性系统中,每一轮有且只有一个提议形成共识,当一个节点一旦提议成功,则持续拥有继续提议的权利,即该节点做为主节点,分布式一致性系统中的其他节点在接受了非自己节点的提议形成共识后,则不再主动提议。通过本方法将相互独立的主节点选举机制和数据同步机制融合到一起,避免引入单独一套主节点选举机制所带来的系统负载型,实现了更加轻量、高可靠的主节点选举。

其次,在选举出主节点后,通过主节点在分布式一致性系统中主动发起数据同步请求机制主动续期选举租约时间段,从节点在选举租约时间段内退避提议,保证主节点的地位,可以有效提升维持机制的健壮性。

最后,主节点和从节点选择续期选举租约时间段时,主节点从发送请求的时间点计算,而从节点从接受到请求的时间点开始计算,通过主节点发送请求和从节点接收请求的时间差来避免出现双主节点出现,提高分布式一致性系统的处理效率。

图7示出了本说明书一实施例提供的分布式一致性系统中主节点的选举方法的流程图,所述方法应用于分布式一致性系统中的提议者节点,具体包括以下步骤:

步骤702:向预设数量的接受者节点发送项目数据信息。

步骤704:接收所述接受者节点返回的响应信息。

步骤706:基于所述响应信息确定当前提议者节点为所述分布式一致性系统的主节点。

步骤708:将项目数据信息同步至所述分布式一致性系统中的从节点。

与上述方法实施例相对应,本说明书还提供了分布式一致性系统中主节点的选举装置实施例,图8示出了本说明书一实施例提供的一种分布式一致性系统中主节点的选举装置的结构示意图,所述装置应用于分布式一致性系统中的提议者节点,如图8所示,该装置包括:

发送模块802,被配置为向预设数量的接受者节点发送项目数据信息;

接收模块804,被配置为接收所述接受者节点返回的响应信息;

确定模块806,被配置为基于所述响应信息确定当前提议者节点为所述分布式一致性系统的主节点;

同步模块808,被配置为将项目数据信息同步至所述分布式一致性系统中的从节点。

上述为本实施例的一种分布式一致性系统中主节点的选举装置的示意性方案。需要说明的是,该分布式一致性系统中主节点的选举装置的技术方案与上述的分布式一致性系统中主节点的选举方法的技术方案属于同一构思,分布式一致性系统中主节点的选举装置的技术方案未详细描述的细节内容,均可以参见上述分布式一致性系统中主节点的选举方法的技术方案的描述。

图9示出了根据本说明书一实施例提供的一种计算设备900的结构框图。该计算设备900的部件包括但不限于存储器910和处理器920。处理器920与存储器910通过总线930相连接,数据库950用于保存数据。

计算设备900还包括接入设备940,接入设备940使得计算设备900能够经由一个或多个网络960通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备940可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。

在本说明书的一个实施例中,计算设备900的上述部件以及图9中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图9所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备900可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备900还可以是移动式或静止式的服务器。

其中,处理器920用于执行如下计算机可执行指令:

向预设数量的接受者节点发送项目数据信息;

接收所述接受者节点返回的响应信息;

基于所述响应信息确定当前提议者节点为所述分布式一致性系统的主节点;

将项目数据信息同步至所述分布式一致性系统中的从节点。

上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的分布式一致性系统中主节点的选举方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述分布式一致性系统中主节点的选举方法的技术方案的描述。

本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于:

向预设数量的接受者节点发送项目数据信息;

接收所述接受者节点返回的响应信息;

基于所述响应信息确定当前提议者节点为所述分布式一致性系统的主节点;

将项目数据信息同步至所述分布式一致性系统中的从节点。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的分布式一致性系统中主节点的选举方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述分布式一致性系统中主节点的选举方法的技术方案的描述。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书并不受所描述的动作顺序的限制,因为依据本说明书,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号