掌桥专利:专业的专利平台
掌桥专利
首页

新增节点的方法及装置、分布式系统的节点、存储介质

文献发布时间:2023-06-19 10:48:02


新增节点的方法及装置、分布式系统的节点、存储介质

技术领域

本申请涉及数据同步技术领域,特别涉及一种新增节点的方法及装置、分布式系统的节点、存储介质。

背景技术

在分布式系统中,系统的高可靠性的基本原则是“集群化”,即通过设置冗余节点的方式来保证系统的高可靠性。在主机节点出现不可用的情况时,可以通过冗余的备机节点继续提供服务。

所以要实现系统的高可用性,则需要确定主节点后,在系统中及时地增加备机节点,并且保证主机节点与备机节点的数据的一致性,即需要将备机节点与主机节点的进行同步数据。在现有技术中,当备机节点需要加入系统中时,备机节点会从主节点持续同步数据,直到备机节点的数据与主节点的数据完全一致后,由主节点通知备机节点加入系统集群中。

但是,由于主节点可能会长时间处于更新事务的状态下,而数据同步存在同步延时,所以若采用现有的方式增加备机节点,则备机节点将长时间无法与主机节点实现数据完全同步,从而无法快速地加入系统中,进而无法快速地实现系统的高可用性。甚至,若主节点一直处于事务更新的状态,则可能导致备机节点一直无法加入到系统中。

发明内容

基于上述现有技术的不足,本申请提供了一种新增节点的方法及装置、分布式系统的节点、存储介质,以解决现有技术中新增节点无法及时加入系统中的问题。

为了实现上述目的,本申请提供了以下技术方案:

本申请第一方面提供了一种新增节点的方法,应用于第一节点,所述方法包括:

接收第二节点发送的数据同步请求;其中,所述第一节点为第一个启动的节点;所述第一节点的状态为单机状态;所述单机状态用于表征分布式系统中仅存在一个节点;

将自身的数据持续同步至所述第二节点,并实时监测数据同步进度;

当监测到数据同步进度达到所述第一节点当前的容忍阈值,则将工作状态由单机状态切换至主机准备状态;其中,所述主机准备状态下的所述第一节点停止事务更新,直至所述第二节点确认数据同步完成;

当监测到数据完全同步时,向所述第二节点发送加入通知,以触发所述第二节点加入所述分布式系统;其中,所述第二节点加入所述分布式系统后,所述第二节点从备机准备状态进入备机状态;

当所述第二节点加入所述分布式系统后,将工作状态由所述主机准备状态切换至主机状态;其中,所述主机状态用于表征所述第一节点作为所述分布式系统中的主机节点。

可选地,在上述的新增节点的方法中,所述将工作状态由单机状态切换至主机准备状态之后,还包括:

判断在第一预设时间长度内是否监测到数据完全同步;其中,若在第一预设时间长度内未监测到数据完全同步,则恢复至单机状态;若在第一预设时间长度内监测到数据完全同步时,则执行所述向所述第二节点发送加入通知。

可选地,在上述的新增节点的方法中,所述当监测到数据同步进度达到所述第一节点当前的容忍阈值,则将工作状态由单机状态切换至主机准备状态之前,还包括:

定时采集所述第二节点的数据同步速度以及所述第一节点的事务更新速度;

将所述数据同步速度与所述事务更新速度的差值,与所述第一预设时间长度的积,作为所述第一节点当前的容忍阈值。

可选地,在上述的新增节点的方法中,所述将工作状态由所述主机准备状态切换至主机状态之后,还包括:

在接收到第三节点的发送的数据同步请求时,将自身的数据持续同步至所述第三节点;其中,所述第三节点指代当前最新启动的节点;

在监测到与所述第三节点实现数据完全同步时,向所述第三节点发送加入通知,以触发所述第三节点加入所述分布式系统;其中,所述第三节点加入所述分布式系统后,所述第三节点从备机准备状态进入备机状态。

本申请第二方面提供了一种新增节点的装置,应用于第一节点,所述装置包括:

接收单元,用于接收第二节点发送的数据同步请求;其中,所述第一节点为第一个启动的节点;所述第一节点的状态为单机状态;所述单机状态用于表征分布式系统中仅存在一个节点;

第一数据同步单元,用于将自身的数据持续同步至所述第二节点;

监测单元,用于实时监测数据同步进度;

第一切换单元,用于在所述监测单元监测到数据同步进度达到所述第一节点当前的容忍阈值时,将工作状态由单机状态切换至主机准备状态;其中,所述主机准备状态下的所述第一节点停止事务更新,直至所述第二节点确认数据同步完成;

第一通知单元,用于在所述监测单元监测到数据完全同步时,向所述第二节点发送加入通知,以触发所述第二节点加入所述分布式系统;其中,所述第二节点加入所述分布式系统后,所述第二节点从备机准备状态进入备机状态;

第二切换单元,用于当所述第二节点加入所述分布式系统后,将工作状态由所述主机准备状态切换至主机状态;其中,所述主机状态用于表征所述第一节点作为所述分布式系统中的主机节点。

可选地,在上述的新增节点的装置中,还包括:

判断单元,用于判断在第一预设时间长度内是否监测到数据完全同步;其中,若所述判断单元判断出在第一预设时间长度内监测到数据完全同步,则所述第一通知单元执行所述向所述第二节点发送加入通知;

恢复单元,用于在所述判断单元判断出第一预设时间长度内未监测到数据完全同步时,则恢复至单机状态。

可选地,在上述的新增节点的装置中,还包括:

获取单元,用于定时采集所述第二节点的数据同步速度以及所述第一节点的事务更新速度;

计算单元,用于将所述数据同步速度与所述事务更新速度的差值,与所述第一预设时间长度的积,作为所述第一节点当前的容忍阈值。

可选地,在上述的新增节点的装置中,还包括:

第二数据同步单元,用于在接收到第三节点的发送的数据同步请求时,将自身的数据持续同步至所述第三节点;其中,所述第三节点指代当前最新启动的节点;

第二通知单元,用于在监测到与所述第三节点实现数据完全同步时,向所述第三节点发送加入通知,以触发所述第三节点加入所述分布式系统;其中,所述第三节点加入所述分布式系统后,所述第三节点从备机准备状态进入备机状态。

本申请第三方面提供了一种分布式系统的节点,包括处理器和存储器;其中:

所述存储器用于存储计算机指令;

所述处理器用于执行所述存储器存储的计算机指令,具体执行如上述任意一项所述的新增节点的方法。

本申请第四方面提供了一种存储介质,用于存储程序,所述程序被执行时,用于实现如上述任意一项所述的新增节点的方法。

本申请提供的一种新增节点的方法,应用于第一节点,第一节点指代第一个启动的节点,且为单机状态,而单机状态用于表征分布式系统中仅存在一个节点。具体通过接收第二节点发送的数据同步请求后,将自身的数据持续同步至第二节点,并实时监测数据同步进度,当监测到数据同步进度达到第一节点当前的容忍阈值,则将工作状态由单机状态切换至主机准备状态,以停止事务更新,直至第二节点确认数据同步完成,从而可以有效地保证第二节点能快速地与第一节点实现数据的完全同步,并且不对系统服务造成大的影响。最后当监测到数据完全同步时,向第二节点发送加入通知,以触发第二节点加入分布式系统,并在第二节点加入分布式系统后,将工作状态由所述主机准备状态切换至主机状态。从而通过在新增节点的数据同步进度达到容忍阈值时,切换到引入的主机准备状态,等待新增节点进行数据同步,避免持续外部请求进行,从而使得新增的节点可以快速地与主节点实现数据完全同步,加入系统集群中,从而快速实现系统的高可用性。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的一种新增节点的方法的流程图;

图2为本申请另一实施例提供的一种容忍阈值的计算方法的流程图;

图3为本申请另一实施例提供的另一种容忍阈值的新增节点的方法的流程图;

图4为本申请另一实施例提供的一种分布式系统的节点的结构示意图;

图5为本申请另一实施例提供的一种分布式系统的节点的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在本申请中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本申请实施例提供了一种新增节点的方法,该方法应用于第一节点。如图1所示,本申请实施例提供的新增节点的方法,具体包括以下步骤:

S101、接收第二节点发送的数据同步请求。

其中,第一节点为第一个启动的节点,且其状态为单机状态。单机状态用于表征分布式系统中仅存在一个节点。

具体的,将分布式系统中第一个启动的节点作为第一节点,此时分布式系统中仅在一个节点,所以第一个启动的节点的状态为单机状态。由于第一节点作为第一个启动的节点,通常将作为主机,所以后续启动的节点将作为备机,因此后续启动的节点的状态为备机准备状态。第二节点则为在第一节点启动后下一个启动的节点。

后续启动的处于备机状态的节点会向单机状态的节点申请数据同步,即第二节点将向第一节点发送数据同步请求。

S102、将自身的数据持续同步至第二节点,并实时监测数据同步进度。

需要说明的是,第二节点从第一节点中同步数据时,第一节点依旧进行事务的正常更新,以能保证正常地提供服务,并且实时监测数据同步进度。

S103、实时判断监测到的数据同步进度是否到达第一节点当前的容忍阈值。

需要说明的是,第二节点同步数据相对于第一节点更新数据,存在一定的延时,而为了避免第二节点长时间无法与第一节点实现数据完全同步,本申请实施例将容忍阈值,作为第一节点停止数据更新的界线,以能保证第二节点可以及时与第一节点实现数据的完全同步。

可选地,容忍阈值具体可以是数据已同步的数据量,或者已同步的数据量的占比,也可以是数据未同步的数据量,或者未同步的数据量的占比等。其中,容忍阈值不宜过大也不宜过小,因为容忍阈值为未同步的数据量,若容忍阈值过大,则数据同步进度很快就能到达容忍阈值,此时会导致第一节点等待时间过长,影响服务的提供。若容忍阈值过小,由于第一节点的数据可能在不断地更新,所以数据同步进度需要较长时间的时间才能达到容忍阈值。甚至若设置的容忍阈值小于第一节点当前单位时间的数据更新量,则数据同步进度将一直无法到达容忍阈值,所以容忍阈值过小将导致第二节点无法及时与第一节点的数据完全同步。同理,若容忍阈值是数据已同步的数据量,或者已同步的数据量的占比,也不宜设置过大或过小。

可选地,本申请另一实施例中,提供了一种计算第一节点当前的容忍阈值的方法,具体在步骤S103之前执行。如图2所示,该方法具体包括以下步骤:

S201、定时采集所述第二节点的数据同步速度以及第一节点的事务更新速度。

具体的,在数据同步开始后,定时当前采集第二节点的数据同步速度以及当前第一节点的事务更新速度。需要说明的是,为了能保证第一节点和第二节点能实现数据的完全同步,设置的数据同步速度通常大于事务更新速度。

S202、将数据同步速度与事务更新速度的差值,与第一预设时间长度的积,作为第一节点当前的容忍阈值。

所以,在本申请实施例中,第一节点的容忍阈值也是相应地更新的,更新为当前计算得到的最新的容忍阈值,即步骤S103中的容忍阈值指代最新计算得到的容忍阈值。

需要说明的是,当监测到数据同步进度达到第一节点当前的容忍阈值,则执行步骤S104。

S104、将工作状态由单机状态切换至主机准备状态,主机准备状态下的第一节点停止事务更新,直至第二节点确认数据同步完成。

需要说明的是,第一节点从单机状态进入主机准备状态后,第一节点与第二节点依旧持续进行数据同步,而由于第一节点此时停止事务更新,即第一节点的数据不再更新,所以第二节点能快速地与第一节实现数据完全同步。当第二节点确认数据同步完成后,第一节点将恢复事务的正常处理。

S105、当监测到数据完全同步时,向第二节点发送加入通知,以触发第二节点加入分布式系统。

具体的,当监测到与第二节点之间数据完全同步,此时第二节点可以增加至分布式系统中,所以向第二节点发送加入通知。第二节点在接收到加入通知后,将加入分布式系统中,并将自身的工作状态从备机准备状态进入备机状态,从而可以在主机节点出现不可用时,被确定为新的主机。

S106、当第二节点加入分布式系统后,将工作状态由主机准备状态切换至主机状态。

需要说明的是,当第二节点加入分布式系统后,分布式系统中包括第一节点和第二节点两个节点,即存在了一个备机节点,因此第一节点可以进入主机状态。其中,主机状态用于表征第一节点作为分布式系统中的主机节点。

本申请实施例提供的一种新增节点的方法,应用于第一节点,第一节点为第一个启动的节点,且为单机状态,而单机状态用于表征分布式系统中仅存在一个节点。具体通过接收第二节点发送的数据同步请求后,将自身的数据持续同步至第二节点,并实时监测数据同步进度,当监测到数据同步进度达到第一节点当前的容忍阈值,则将工作状态由单机状态切换至主机准备状态,以停止事务更新,直至第二节点确认数据同步完成,从而可以有效地保证第二节点能快速地与第一节点实现数据的完全同步,并且不对系统服务造成大的影响。最后当监测到数据完全同步时,向第二节点发送加入通知,以触发第二节点加入分布式系统,并在第二节点成功加入后,将自身的工作状态由主机准备状态切换至主机状态。从而通过在新增节点的数据同步进度达到容忍阈值时,切换到引入的主机准备状态,等待新增节点进行数据同步,避免持续外部请求进行,从而使得新增的节点可以快速地与主节点实现数据完全同步,加入系统集群中,从而快速实现系统的高可用性。

本申请另一实施例提供了另一种新增节点的方法,该方法应用于第一节点。如图3所示,本申请实施例提供的方法,具体包括以下步骤:

S301、接收第二节点发送的数据同步请求。

其中,第一节点为第一个启动的节点,第一节点的状态为单机状态,单机状态用于表征分布式系统中仅存在一个节点。

需要说明的是,步骤S301的具体实施方式可相应地参考上述方法实施例中的步骤S101,此处不再赘述。

S302、将自身的数据持续同步至第二节点,并实时监测数据同步进度。

需要说明的是,步骤S302的具体实施方式可相应地参考上述方法实施例中的步骤S102,此处不再赘述。

S303、实时判断监测到的数据同步进度是否到达第一节点当前的容忍阈值。

需要说明的是,步骤S303的具体实施方式可相应地参考上述方法实施例中的步骤S103,此处不再赘述。

其中,当监测到数据同步进度达到所述第一节点当前的容忍阈值,则执行步骤S304。

S304、将工作状态由单机状态切换至主机准备状态,主机准备状态下的所述第一节点停止事务更新,直至第二节点确认数据同步完成。

需要说明的是,步骤S304的具体实施方式可相应地参考上述方法实施例中的步骤S104,此处不再赘述。

S305、判断在第一预设时间长度内是否监测到数据完全同步。

为了避免第二节点同步数据过慢,导致数据完全同步耗费时间过长,或者第二节点出现故障,无法实现数据完全同步,进而导致第一节点长时间或一直处于等待状态,因此在本申请实施例中,需要第二节点在第一预设时间长度内,实现数据完全同步。其中,若在第一预设时间长度内监测到数据完全同步,则执行步骤S306。若在第一预设时间长度内未监测到数据完全同步,则执行步骤S307。

可选地,可以将设备灾备切换时间设置为第一预设时间长度,从而可以有效保证设备的灾备切换。

S306、向第二节点发送加入通知,以触发第二节点加入分布式系统。

其中,第二节点加入所述分布式系统后,第二节点从备机准备状态进入备机状态。

具体的,步骤S306的具体实施方式可相应地参考上述方法实施例中的步骤S105,此处不再赘述。

S307、恢复至单机状态。

具体的,当在第一预设时间长度内未监测到数据完全同步,则将第一节点恢复至单机状态,此时第一节点又可正常进行数据处理,不再处于等待状态。并且,可以再次接收新增节点的数据同步请求,进行数据同步,即可以返回执行步骤S301。

S308、当第二节点加入分布式系统后,将工作状态由主机准备状态切换至主机状态。

其中,所述主机状态用于表征所述第一节点作为所述分布式系统中的主机节点。

可见在执行步骤S306,且第二节点成功加入分布式系统后,执行步骤S308。需要说明的是,步骤S308的具体实施方式可相应地参考上述方法实施例中的步骤S106,此处不再赘述。

S309、在接收到第三节点的发送的数据同步请求时,将自身的数据持续同步至第三节点,第三节点指代当前最新启动的节点。

由于通常情况下,备机节点可以存在多个,所以在新增第二节点后,还可以进一步增加其他的节点。

同样,启动的第三节点的初始状态为备机准备状态,并向处于主机状态的第一节点发送数据同步请求进行数据同步。

S310、在监测到与第三节点实现数据完全同步时,向第三节点发送加入通知,以触发第三节点加入分布式系统。

其中,第三节点加入所述分布式系统后,第三节点从备机准备状态进入备机状态。

需要说明的是,由于已经存在第二节点作为备机节点,即分布式系统已具有一定的高可用性,为了影响向应用正常提供服务,因此在本申请实施例中,后续新增节点时,第一节点不再检测数据同步进度进入容忍阈值后进行等待。由于,第一节点并不会时刻都在进行数据更新,所以后续增加的节点也能增加至分布式系统中,仅是时间有可能相对较长,但这种方式可以不影响事务的正常处理。当然,这只是其中一种可选的方式,针对后续新增的节点,第一节点也可以同样在检测第三节点的数据同步进度进入容忍阈值后,等待数据完全同步。

本申请另一实施例提供了一种新增节点的装置,应用于第一节点。如图4所示,本申请实施例提供的新增节点的装置包括以下单元:

接收单元401,用于接收第二节点发送的数据同步请求。

其中,第一节点为第一个启动的节点。第一节点的状态为单机状态。单机状态用于表征分布式系统中仅存在一个节点。

第一数据同步单元402,用于将自身的数据持续同步至第二节点。

监测单元403,用于实时监测数据同步进度。

第一切换单元404,用于在监测单元监测到数据同步进度达到第一节点当前的容忍阈值时,将工作状态由单机状态切换至主机准备状态。

其中,主机准备状态下的第一节点停止事务更新,直至第二节点确认数据同步完成。

第一通知单元405,用于在监测单元监测到数据完全同步时,向第二节点发送加入通知,以触发第二节点加入分布式系统。

其中,第二节点加入分布式系统后,第二节点从备机准备状态进入备机状态。

第二切换单元406,用于当第二节点加入分布式系统后,将工作状态由主机准备状态切换至主机状态。

其中,主机状态用于表征第一节点作为分布式系统中的主机节点。

可选地,在本申请另一实施例提供的新增节点的装置中,还可以包括:

获取单元,用于定时采集第二节点的数据同步速度以及第一节点的事务更新速度。

计算单元,用于将数据同步速度与事务更新速度的差值,与第一预设时间长度的积,作为第一节点当前的容忍阈值。

可选地,在本申请另一实施例提供的新增节点的装置中,还包括:

第二数据同步单元,用于在接收到第三节点的发送的数据同步请求时,将自身的数据持续同步至第三节点。

其中,第三节点指代当前最新启动的节点。

第二通知单元,用于在监测到与第三节点实现数据完全同步时,向第三节点发送加入通知,以触发第三节点加入分布式系统。

其中,第三节点加入分布式系统后,第二节点从备机准备状态进入备机状态。

可选地,在本申请另一实施例提供的新增节点的装置中,还可以进一步包括:

判断单元,用于判断在第一预设时间长度内是否监测到数据完全同步。

其中,若判断单元判断出在第一预设时间长度内监测到数据完全同步,则第一通知单元执行向第二节点发送加入通知。

恢复单元,用于在判断单元判断出第一预设时间长度内未监测到数据完全同步时,则恢复至单机状态。

需要说明的是,本申请上述实施例提供的各个单元的具体工作过程可相应地参考上述方法实施例中相应的步骤的实施方式,此处不再赘述。描述于上述实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。

本申请另一实施例提供了一种分布式系统的节点,如图5所示,包括:处理器501和存储器502。

其中:存储器502用于存储计算机指令,处理器501用于执行存储器502存储的计算机指令,具体执行如上述任意一个实施例提供的新增节点的方法。

本申请另一实施例提供了一种计算机存储介质,用于存储程序,所述程序被执行时,用于实现如上述任意一个实施例提供的新增节点的方法。

计算机存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 新增节点的方法及装置、分布式系统的节点、存储介质
  • 在对等分布式系统中新增节点的方法及对等分布式系统
技术分类

06120112686023