CN110300023A - 一种状态切换方法、装置、节点、节点组及存储介质 - Google Patents
一种状态切换方法、装置、节点、节点组及存储介质 Download PDFInfo
- Publication number
- CN110300023A CN110300023A CN201910576993.XA CN201910576993A CN110300023A CN 110300023 A CN110300023 A CN 110300023A CN 201910576993 A CN201910576993 A CN 201910576993A CN 110300023 A CN110300023 A CN 110300023A
- Authority
- CN
- China
- Prior art keywords
- state
- node
- notification message
- goal notification
- random time
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000004891 communication Methods 0.000 claims description 13
- 238000001514 detection method Methods 0.000 claims description 13
- 238000012423 maintenance Methods 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000005055 memory storage Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 14
- 230000002159 abnormal effect Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007858 starting material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/30—Decision processes by autonomous network management units using voting and bidding
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明实施例提供了一种状态切换方法、装置、节点、节点组及存储介质,所述状态切换方法包括:在第一状态下,检测连续的至少两个随机时间内是否在所述节点组接收到目标通知消息;所述目标通知消息用于通知所述节点组内已存在第二状态的节点;若连续的至少两个随机时间内未接收到所述目标通知消息,切换状态为第二状态;在第二状态下,定时在所述节点组发送所述目标通知消息;所述第二状态为提供预设服务的状态,所述第一状态与所述第二状态不同。所述方法能够便捷、高效的实现节点的状态切换。
Description
技术领域
本发明实施例涉及信息技术领域,具体涉及一种状态切换方法、装置、节点、节点组及存储介质。
背景技术
节点组是为保障服务正常的由多个节点组成的群组,节点的状态一般分为两种:提供服务的状态和不提供服务的状态;正常情况下,节点组中主要由一个节点提供服务,当该节点异常时,节点组中的其他节点可竞争成为提供服务的节点;此时,需要利用节点的状态切换方法,实现节点在提供服务的状态与不提供服务的状态之间的切换。
目前的状态切换方法主要基于选举算法实现,即存在多个节点竞争时,采用节点投票选举并且基于“少数服从多数”的策略,来确定提供服务的节点;这种方式需要部署奇数数量的节点才能得以实施,部署复杂度较高且实现较为复杂。
发明内容
有鉴于此,本发明实施例提供一种状态切换方法、装置、节点、节点组及存储介质,以便捷、高效的实现节点的状态切换。
为实现上述目的,本发明实施例提供如下技术方案:
一种状态切换方法,应用于节点组的节点,所述状态切换方法包括:
在第一状态下,检测连续的至少两个随机时间内是否在所述节点组接收到目标通知消息;所述目标通知消息用于通知所述节点组内已存在第二状态的节点;
若连续的至少两个随机时间内未接收到所述目标通知消息,切换状态为第二状态;
在第二状态下,定时在所述节点组发送所述目标通知消息;所述第二状态为提供预设服务的状态,所述第一状态与所述第二状态不同。
可选的,所述检测连续的至少两个随机时间内是否在所述节点组接收到目标通知消息包括:
检测一个随机时间内是否在所述节点组接收到所述目标通知消息;
若所述一个随机时间内未接收到所述目标通知消息,等待至少一个随机时间,检测等待的至少一个随机时间内是否在所述节点组接收到所述目标通知消息。
可选的,所述连续的至少两个随机时间内未接收到所述目标通知消息包括:所述一个随机时间内未接收到所述目标通知消息,且等待的至少一个随机时间内未接收到所述目标通知消息;
所述状态切换方法还包括:
若所述一个随机时间内接收到所述目标通知消息,或者,等待的至少一个随机时间内接收到所述目标通知消息,维持状态为第一状态。
可选的,所述状态切换方法还包括:
在第二状态下,检测是否在所述节点组接收到目标通知消息;
若接收到目标通知消息,等待至少一个随机时间,检测等待的至少一个随机时间内是否连续接收到相同的目标通知消息;
若等待的至少一个随机时间内连续接收到相同的目标通知消息,切换状态为第一状态;
若等待的至少一个随机时间内未连续接收到相同的目标通知消息,维持状态为第二状态。
可选的,所述随机时间为从预设时间范围内随机选择的时间;所述随机时间大于预设倍数的定时时间。
可选的,所述状态切换方法还包括:
在启动所述节点时,设置所述节点的状态为第一状态。
可选的,所述节点组的节点位于同一地域的同一局域网内,或者,同一地域的不同局域网内,或者,不同地域的不同局域网内。
可选的,所述定时在所述节点组发送所述目标通知消息包括:
通过组内广播定时在所述节点组广播所述目标通知消息;
或者,通过中间件总线定时在所述节点组发送所述目标通知消息,所述节点组的节点通过所述中间件总线相互通信。
本发明实施例还提供一种状态切换装置,应用于节点组的节点,所述状态切换装置包括:
消息检测模块,用于在第一状态下,检测连续的至少两个随机时间内是否在所述节点组接收到目标通知消息;所述目标通知消息用于通知所述节点组内已存在第二状态的节点;
切换模块,用于若连续的至少两个随机时间内未接收到所述目标通知消息,切换状态为第二状态;
消息发送模块,用于在第二状态下,定时在所述节点组发送所述目标通知消息;所述第二状态为提供预设服务的状态,所述第一状态与所述第二状态不同。
本发明实施例还提供一种节点,包括至少一个存储器和至少一个处理器,所述存储器存储程序,所述处理器调用所述程序,执行上述所述的状态切换方法。
本发明实施例还提供一种节点组,所述节点组包括多个节点,所述节点被配置为执行上述所述的状态切换方法。
本发明实施例还提供一种存储介质,所述存储介质存储执行上述所述的状态切换方法的程序。
本发明实施例提供的状态切换方法可应用于节点组的节点,由所述节点执行本发明实施例提供的状态切换方法;当所述节点处于第一状态下时,可检测连续的至少两个随机时间内是否在所述节点组接收到目标通知消息,以便判断所述节点组内是否存在第二状态的节点;若连续的至少两个随机时间内未接收到所述目标通知消息,则说明所述节点组内还不存在第二状态的节点,或者第二状态的节点异常,同时节点组内还未有其他节点竞争成为第二状态的节点,则所述节点可切换状态为第二状态,从而抢占成为第二状态的节点;进而,所述节点在第二状态下,可定时在所述节点组发送所述目标通知消息,以便所述节点组内的其他节点确定当前已存在第二状态的节点,减少其他节点再次抢占成为第二状态的节点的情况发生,保障状态切换的准确性。
可见,本发明实施例提供的状态切换方法,可在节点组不存在第二状态的节点或者第二状态的节点异常,无法在节点组内接收到目标通知消息时,由节点基于随机时间,抢占成为第二状态的节点,实现节点的状态切换,保障预设服务的正常提供。本发明实施例提供的状态切换方法是以节点基于随机时间抢占第二状态的方式,实现节点的状态切换,并不限制节点的数量要求,同时,本发明实施例提供的状态切换方法可通过改进节点的处理逻辑实现,不需额外部署其他部件,因此本发明实施例提供的状态切换方法的实现复杂度较低,可便捷、高效的实现节点的状态切换。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为节点组的结构示意图;
图2为本发明实施例提供的状态切换方法的交互流程图;
图3为第一状态的节点抢占成为第二状态的节点的示例图;
图4为本发明实施例提供的状态切换方法的流程图;
图5为本发明实施例提供的状态切换方法的另一流程图;
图6为主节点正常情况下的流程示例图;
图7为主节点异常情况下的流程示例图;
图8为节点启动时的流程示例图;
图9为本发明实施例提供的状态切换装置的框图;
图10为本发明实施例提供的状态切换装置的另一框图;
图11为本发明实施例提供的状态切换装置的再一框图;
图12为本发明实施例提供的状态切换装置的又一框图;
图13为硬件节点的硬件框图。
具体实施方式
为便于说明,节点组的节点所具有的两种状态可以称为:不提供预设服务的第一状态,和提供预设服务的第二状态;节点组可被配置为统一由第二状态的节点来实现对外提供预设服务,如节点组可被配置为统一由第二状态的节点定时向用户发送短信,定时向用户拨打电话等。目前的状态切换方法,在第二状态的节点异常,多个第一状态的节点竞争成为新的第二状态的节点时,采用节点投票选举并且基于“少数服从多数”的策略,来确定新的第二状态的节点。然而,这种状态切换方式为得到明确的投票选举结果,需要节点组部署奇数数量的节点,这导致节点组的部署复杂度较高,状态切换方法的实现也较为复杂。
基于此,本发明实施例提供一种状态切换方法、装置、节点、节点组及存储介质,以便捷、高效的实现节点的状态切换。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
作为一种可选实现,图1示出了节点组的一种可选结构示意图,在正常情况下,节点组可以包括第二状态的节点及至少一个第一状态的节点;在本发明实施例中,节点组统一由第二状态的节点来实现对外提供预设服务时,如图1所示,第二状态的节点还可定时在节点组内发送目标通知消息,以通知节点组内的第一状态的节点目前节点组内已存在第二状态的节点,从而避免节点组内的第一状态的节点竞争成为第二状态的节点;
可选的,第二状态的节点可通过组内广播定时在所述节点组广播所述目标通知消息;例如,第二状态的节点可通过UDP(User Datagram Protocol,用户数据报协议)组播定时在所述节点组广播所述目标通知消息;
可选的,另一方面,第二状态的节点也可通过中间件总线定时在所述节点组发送所述目标通知消息,所述节点组的节点可通过所述中间件总线相互通信。
当节点组的第二状态的节点异常时,第一状态的节点无法定时接收到所述目标通知消息,则第一状态的节点可通过本发明实施例提供的状态切换方法,竞争成为第二状态的节点,从而便捷、高效的实现节点的状态切换。
需要说明的是,本发明实施例所述的节点组的节点可以位于同一地域的同一局域网内,或者,同一地域的不同局域网内,或者,不同地域的不同局域网内。
可选的,图2示出了本发明实施例提供的状态切换方法的一种可选交互流程,图2所示流程描述了第二状态的节点由正常变为异常时,第一状态的节点竞争成为第二状态的节点的方式,本发明实施例在第二状态的节点配置有定时时间,在第一状态的节点配置有随机时间,基于第二状态的节点的定时时间和第一状态的节点的随机时间的配置,本发明实施例实现状态切换的流程可以包括:
步骤S10、第二状态的节点定时在节点组发送目标通知消息。
目标通知消息可用于通知节点组内已存在第二状态的节点,目标通知消息的具体内容和形式可以由节点组内的节点事先约定,只要能够达到通知节点组内已存在第二状态的节点的目的即可,本发明实施例对于目标通知消息的具体内容和形式并不局限。在一种示例中,目标通知消息可以是事先约定的特定字符,也可以包含事先约定的描述内容,例如目标通知消息可以包含事先约定的“i am leader”的描述内容等。
第二状态的节点在正常情况下,除实现对外提供预设服务外,还可定时在节点组内发送目标通知消息,以通知节点组内的第一状态的节点目前已存在第二状态的节点。
步骤S11、第一状态的节点检测到在随机时间内接收目标通知消息。
如图2所示,第二状态的节点是依据定时时间,定时的向节点组内的第一状态的节点发送目标通知消息,通过设置第一状态的节点的随机时间大于所述定时时间,则第一状态的节点可检测到在随机时间内接收目标通知消息,从而第一状态的节点可确定当前节点组内的第二状态的节点正常,进而第一状态的节点可不竞争成为第二状态的节点,即不实现节点的状态切换。
需要说明的是,随机时间可以认为是随机选择的时间,在一种可选实现中,本发明实施例可预设时间范围,随机时间可以是从预设时间范围内随机选择的时间,本发明实施例可保障每次选择的随机时间均大于所述定时时间。可选的的,所述随机时间可大于预设倍数的定时时间,如随机时间可大于3倍的定时时间等。
步骤S10和步骤S11描述了第二状态的节点处于正常情况下的流程示意,下面对第二状态的节点处于异常情况下的流程示意进行说明。
步骤S12、第一状态的节点检测在一个随机时间内未在节点组接收到目标通知消息。
在第二状态的节点异常的情况下,第二状态的节点无法定时在节点组发送目标通知消息,同时由于每次的随机时间均大于定时时间,因此第一状态的节点可在第二状态的节点异常时,检测到在一个随机时间内未接收目标通知消息。
步骤S13、第一状态的节点等待下一个随机时间,检测在下一个随机时间内仍未在节点组接收到目标通知消息,切换状态为第二状态。
为排除非第二状态的节点异常导致第一状态的节点无法接收目标通知消息的情况,在本发明实施例中,第一状态的节点在一个随机时间内未在节点组接收到目标通知消息时,第一状态的节点可等待下一个随机时间,若检测在第一个随机时间内仍未在节点组接收到目标通知消息,则第一状态的节点可确定当前第二状态的节点异常,且当前还未有其他第一状态的节点竞争成为新的第二状态的节点(若当前已有其他第一状态的节点竞争成为新的第二状态的节点,则当前已可在节点组内接收到目标通知消息),因此,第一状态的节点可切换状态为第二状态,从而抢占成为新的第二状态的节点。
在第一状态的节点切换状态为第二状态,成为新的第二状态的节点后,该节点除对外提供预设服务外,还可定时在节点组发送目标通知消息,以通知节点组内的其他节点当前已存在第二状态的节点。
可选的,上述过程中,第一状态的节点在一个随机时间内未在节点组接收到目标通知消息,继续等待的随机时间可以为至少一个,而不局限于仅等待下一个随机时间;即第一状态的节点在一个随机时间内未在节点组接收到目标通知消息时,则可等待至少一个随机时间,从而检测等待的至少一个随机时间内是否在节点组接收到目标通知消息;若等待的至少一个随机时间内仍未在节点组接收到目标通知消息,则可切换状态为第二状态,从而抢占成为新的第二状态的节点;
也就是说,节点组内的节点在第一状态下,若检测连续的至少两个随机时间内未在节点组接收到目标通知消息,则可切换状态为第二状态。
进一步,若第一状态的节点在一个随机时间内接收到所述目标通知消息,或者,在等待的至少一个随机时间内接收到所述目标通知消息,则可维持状态为第一状态。
可以理解的是,在节点组的第二状态的节点异常时,节点组的第一状态的节点是基于随机时间抢占成为新的第二状态的节点,即随机时间越短,则第一状态的节点抢占成为新的第二状态的节点的可能性越大;下面以节点在第一状态下,在连续的两个随机时间内未接收到目标通知消息,则切换状态为第二状态为例,对多个第一状态的节点抢占成为新的第二状态的节点的过程进行说明;如图3所示,假设第二状态的节点在时刻T异常,无法在节点组内定时发送目标通知信息,且第一状态的节点11和第一状态的节点12的随机时间正好在时刻T重新开始计时,则第一状态的节点11和第一状态的节点12中,连续两个随机时间最短的第一状态的节点11最先抢占成为新的第二状态的节点,在第一状态的节点11成为新的第二状态的节点后,第一状态的节点11可定时在节点组内发送目标通知消息,此时,第一状态的节点12可在随机时间内接收到目标通知消息,从而不竞争成为第二状态的节点。
可见,站在节点组的节点的角度,节点可以在第一状态和第二状态间切换,如图4所示本发明实施例提供的状态切换方法的流程图,从节点组的节点的角度来看,本发明实施例提供的状态切换方法可以包括:
步骤S20、在第一状态下,检测连续的至少两个随机时间内是否在节点组接收到目标通知消息。
步骤S21、若连续的至少两个随机时间内未接收到所述目标通知消息,切换状态为第二状态。
可选的,若连续的至少两个随机时间中,任一随机时间接收到所述目标通知消息,则节点可维持为第一状态,并继续检测连续的至少两个随机时间内是否在节点组接收到目标通知消息。
步骤S22、在第二状态下,定时在节点组发送所述目标通知消息。
本发明实施例提供的状态切换方法可应用于节点组的节点,由所述节点执行本发明实施例提供的状态切换方法;当所述节点处于第一状态下时,可检测连续的至少两个随机时间内是否在所述节点组接收到目标通知消息,以便判断所述节点组内是否存在第二状态的节点;若连续的至少两个随机时间内未接收到所述目标通知消息,则说明所述节点组内还不存在第二状态的节点,或者第二状态的节点异常,同时节点组内还未有其他节点竞争成为第二状态的节点,则所述节点可切换状态为第二状态,从而抢占成为第二状态的节点;进而,所述节点在第二状态下,可定时在所述节点组发送所述目标通知消息,以便所述节点组内的其他节点确定当前已存在第二状态的节点,减少其他节点再次抢占成为第二状态的节点的情况发生,保障状态切换的准确性。
可见,本发明实施例提供的状态切换方法,可在节点组不存在第二状态的节点或者第二状态的节点异常,无法在节点组内接收到目标通知消息时,由节点基于随机时间,抢占成为第二状态的节点,实现节点的状态切换,保障预设服务的正常提供。本发明实施例提供的状态切换方法是以节点基于随机时间抢占第二状态的方式,实现节点的状态切换,并不限制节点的数量要求,同时,本发明实施例提供的状态切换方法可通过改进节点的处理逻辑实现,不需额外部署其他部件,因此本发明实施例提供的状态切换方法的实现复杂度较低,可便捷、高效的实现节点的状态切换。
需要说明的是,在本发明实施例中,由于网络延时等非第二状态的节点异常的原因,节点组内的第一状态的节点也可能在连续的至少两个随机时间内未接收到第二状态的节点发送的目标通知消息,而竞争成为第二状态的节点;此时,在网络恢复正常时,为防止节点组内同时存在两个第二状态的节点,本发明实施例还可提供基于随机时间由第二状态切换为第一状态的状态切换方法;可选的,图5示出了本发明实施例提供的状态切换方法的另一流程图,站在节点组的节点的角度,本发明实施例提供的状态切换方法可以包括:
步骤S30、在第二状态下,检测是否在所述节点组接收到目标通知消息,若否,返回步骤S30,若是,执行步骤S31。
为防止由于网络延时等原因导致的节点组内存在两个第二状态的节点的情况,本发明实施例可在节点处于第二状态下,检测是否在节点组接收到目标通知消息,若否,则可继续检测,并维持第二状态,若是,则执行步骤S31。
步骤S31、等待至少一个随机时间,检测等待的至少一个随机时间内是否连续接收到相同的目标通知消息,若是,执行步骤S32,若否,执行步骤S33。
第二状态的节点在节点组内接收到目标通知消息,说明节点组内还存在其他第二状态的节点在定时发送目标通知消息,则第二状态的节点在接收到目标通知消息后,可继续等待至少一个随机时间,检测等待的至少一个随机时间内是否还连续接收到相同的目标通知消息。
步骤S32、切换状态为第一状态。
第二状态的节点处于不断定时的在节点组内发送目标通知消息的状态,当第二状态的节点在接收到目标通知消息后,还在等待的至少一个随机时间内连续接收到相同的目标通知消息,说明节点组内还存在保持为第二状态的其他节点,此时,在等待的至少一个随机时间内连续接收到相同的目标通知消息的第二状态的节点可切换状态为第一状态,保障节点组内只有一个第二状态的节点。节点切换为第一状态后,可基于本发明实施例上述描述的状态切换方法的内容,在节点组中的第二状态的节点异常时,基于随机时间抢占成为第二状态的节点。
步骤S33、维持状态为第二状态。
第二状态的节点处于不断定时在节点组内发送目标通知消息的状态,当第二状态的节点在接收到目标通知消息后,未在等待的至少一个随机时间内连续接收到相同的目标通知消息,则说明节点组内当前已不存在其他第二状态的节点,此时,第二状态的节点可维持状态为第二状态。第二状态的节点维持第二状态后,可继续检测是否在节点组接收到目标通知消息,并对外提供预设服务和定时在节点组发送目标通知消息。
可以理解的是,图5所示流程在节点组存在多个第二状态的节点时,是基于随机时间实现第二状态的维持或切换至第一状态,即随机时间越短,则第二状态的节点切换为第一状态的可能性越大;为便于说明,设节点组存在第二状态的节点21和22,其中,第二状态的节点21可以是原先存在的第二状态的节点,第二状态的节点22是由于网络延时,在连续的至少两个随机时间内无法接收到第二状态的节点21发送的目标通知消息,而切换成的新的第二状态的节点;在网络恢复正常后,由于第二状态的节点21和22均定时发送目标通知消息,因此第二状态的节点21和22可均发现节点组内除自身外,还存在其他的第二状态的节点;
假设第二状态的节点21和22均同时接收到目标通知消息,则第二状态的节点21和22可均等待一个随机时间(当然等待的随机时间也可多于一个,此处以等待一个随机时间为例),若第二状态的节点21的随机时间短于第二状态的节点22的随机时间,第二状态的节点21可在等待的随机时间内连续接收到相同的目标通知消息,从而第二状态的节点21切换为第一状态,不再发送目标通知消息;由于第二状态的节点22的随机时间长于第二状态的节点21的随机时间,因此在第二状态的节点22等待的随机时间内,第二状态的节点21已切换为第一状态,此时,第二状态的节点22在等待的随机时间内未连续接收到相同的目标通知消息,可维持状态为第二状态。
可选的,在节点组的节点初始启动时,节点组的节点可默认为第一状态,此时节点组内不存在发送目标通知消息的第二状态的节点,则节点组内的第一状态的节点可基于随机时间抢占成为第二状态的节点,即第一状态的节点的连续的至少两个随机时间越短,则越可能抢占成为第二状态的节点。
在一种应用示例中,第一状态的节点可以为备用节点,第二状态的节点可以为主节点,主节点可以是节点组中设置的统一提供服务的节点,备用节点是在主节点异常时为保障服务正常提供所设置的备选使用的节点;当然,备用节点仅是第一状态的节点的一种可选形式,主节点仅是第二状态的节点的一种可选形式,一般而言,主节点具有节点组提供的全部服务功能,本发明实施例也可仅是进行部分服务功能权限的竞争,而不进行主备节点的身份竞争,从而在另一种应用示例中,第二状态的节点可以是具有主节点的部分服务功能的节点,第一状态的节点可以是不具有该部分服务功能的节点,该部分服务功能的权限可以由节点组中的节点竞争获得。
下面以主备切换作为应用示例,对本发明实施例提供的状态切换方法进行说明。
在一种可选实现中,图6示例性的示出了主节点在正常情况下的流程,如图6所示,主节点定时在节点组内发送目标通知消息,示例的,所述目标通知消息可以为包含“i amleader”的消息;而备用节点1和2则可在随机时间内检测到接收所述目标通知消息,维持备用状态;
其中,所述随机时间可以是从预设时间范围内随机选择的时间;所述随机时间大于预设倍数的定时时间。在一个示例中,备用节点可从预设时间范围内随机选择时间,并通过定时器计时随机时间。需要说明的是,不同备用节点的随机时间的时长是随机的,同一备用节点在不同时刻的随机时间的时长也是随机的;以图6为例,备用节点1和备用节点2的随机时间的时长是随机的,如备用节点1的随机时间1的时长、随机时间2的时长是随机确定的,备用节点2的随机时间1’的时长、随机时间2’的时长也是随机确定的。
在一种可选实现中,图7示例性的示出了主节点异常时的流程;在主节点异常时,主节点不再定时发送目标通知消息,节点组内的备用节点检测到连续的至少两个随机时间内未接收到目标通知消息时,则切换为主节点;
具体的,备用节点在一个随机时间内未接收到所述目标通知消息时,表明主节点可能异常,此时,备用节点可继续等待至少一个随机时间,用于确认节点组内的主节点是否的确异常,并判断当前是否已有备用节点切换为主节点;
需要说明的是,由于随机时间的时长是随机确定的,因此,不同备用节点对应的连续的至少两个随机时间的时长也是随机确定的,且连续的至少两个随机时间与主节点异常时刻的时差也是随机的,相应的,在主节点异常时,对应连续的至少两个随机时间最短的备用节点会首先进行状态切换,从而抢占成为主节点;
参考图7,备用节点1在主节点异常时,备用节点1对应的连续至少两个随机时间(随机时间1和随机时间2)最短,因此,备用节点1进行状态切换,成为主节点,并定时在所述节点组发送目标通知消息,告知节点组内的其他节点当前已存在主节点;而对于备用节点2,在随机时间1’内未收到目标通知消息,在等待的随机时间2’内接收到了目标通知消息“iam leader”,因此备用节点2维持为备用节点。
由于状态切换为主节点后,主节点可定时在所述节点组发送所述目标通知消息,以便所述节点组内的其他节点确定当前已存在主节点,从而可减少其他节点再次抢占成为主节点的情况发生,保障状态切换的准确性。
节点组的主节点的数量在正常情况下应为一个,其他节点应保持为备用节点,但是在网络时延等极端情况下,也可能出现存在多个主节点的情况(具体原因情况可参照图5部分说明,此处不再赘述),此时,主节点在定时发送目标通知消息的同时,还会检测是否在所述节点组接收到目标通知消息;若接收到目标通知消息,表明节点组内还存在其他主节点,主节点可等待一个随机时间(等待的随机时间也可多于一个,本发明实施例以等待一个随机时间为例进行说明),检测等待的一个随机时间内是否连续接收到相同的目标通知消息,若是,则主节点可切换为备用节点。
在节点组启动时,启动节点组内的节点均为备用状态,即节点组内均是备用节点,图8示出了节点组的节点启动时的流程,在节点组启动时,所有节点均为备用节点,此时,连续的至少两个随机时间最短的备用节点切换成为主节点;如图8所示,节点启动后,两个随机时间的时长最短的备用节点1未接收到目标通知消息,从而抢占成为主节点,并开始定时发送目标通知消息;而其他备用节点由于随机时间的时长较长,其他备用节点会在连续的至少两个随机时间接收到目标通知消息,从而维持为备用节点。
上述示例说明了本发明实施例提供的状态切换方法在主备节点切换场景下的应用说明,当然,主备节点切换仅是本发明实施例提供的状态切换方法的一种可选应用示例,本发明实施例还可在其他的存在节点的状态切换的场景下适用。使用本发明实施例提供的状态切换方法,可在节点组不存在第二状态的节点或者第二状态的节点异常时,由节点组的第一状态的节点基于随机时间,抢占成为第二状态的节点,实现节点的状态切换,保障预设服务的正常提供。本发明实施例提供的状态切换方法是以节点基于随机时间抢占第二状态的方式,实现节点的状态切换,并不限制节点的数量要求,同时,本发明实施例提供的状态切换方法可通过改进节点的处理逻辑实现,不需额外部署其他部件,因此本发明实施例提供的状态切换方法的实现复杂度较低,可便捷、高效的实现节点的状态切换。
上文描述了本发明实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本发明实施例披露、公开的实施例方案。
下面对本发明实施例提供的状态切换装置进行介绍,下文描述的状态切换装置可以认为是,节点组内的节点为实现本发明实施例提供的状态切换方法所需设置的功能模块架构。下文描述的状态切换装置的内容,可与上文描述的状态切换方法的内容相互对应参照。
作为一种可选实现,图9示出了本发明实施例提供的状态切换装置的框图,参照图9,该状态切换装置可以包括:
消息检测模块100,用于在第一状态下,检测连续的至少两个随机时间内是否在所述节点组接收到目标通知消息;所述目标通知消息用于通知所述节点组内已存在第二状态的节点;
切换模块200,用于若连续的至少两个随机时间内未接收到所述目标通知消息,切换状态为第二状态;
消息发送模块300,用于在第二状态下,定时在所述节点组发送所述目标通知消息;所述第二状态为提供预设服务的状态,所述第一状态与所述第二状态不同。
可选的,所述消息检测模块100,用于检测连续的至少两个随机时间内是否在所述节点组接收到目标通知消息,可以具体包括:
检测一个随机时间内是否在所述节点组接收到所述目标通知消息;
若所述一个随机时间内未接收到所述目标通知消息,等待至少一个随机时间,检测等待的至少一个随机时间内是否在所述节点组接收到所述目标通知消息。
可选的,所述连续的至少两个随机时间内未接收到所述目标通知消息可以包括:所述一个随机时间内未接收到所述目标通知消息,且等待的至少一个随机时间内未接收到所述目标通知消息;
可选的,图10示出了本发明实施例提供的状态切换装置的另一框图,结合图9和图10所示,该状态切换装置还可以包括:
状态维持模块400,用于若所述一个随机时间内接收到所述目标通知消息,或者,等待的至少一个随机时间内接收到所述目标通知消息,维持状态为第一状态。
可选的,图11示出了本发明实施例提供的状态切换装置的再一框图,结合图9和图11所示,该状态切换装置还可以包括:
状态处理模块500,用于在第二状态下,检测是否在所述节点组接收到目标通知消息;若接收到目标通知消息,等待至少一个随机时间,检测等待的至少一个随机时间内是否连续接收到相同的目标通知消息;若等待的至少一个随机时间内连续接收到相同的目标通知消息,切换状态为第一状态;若等待的至少一个随机时间内未连续接收到相同的目标通知消息,维持状态为第二状态。
可选的,所述随机时间为从预设时间范围内随机选择的时间;所述随机时间大于预设倍数的定时时间。
可选的,图12示出了本发明实施例提供的状态切换装置的又一框图,结合图11和图12所示,该状态切换装置还可以包括:
默认状态模块600,用于在启动所述节点时,设置所述节点的状态为第一状态。
可选的,所述节点组的节点位于同一地域的同一局域网内,或者,同一地域的不同局域网内,或者,不同地域的不同局域网内。
可选的,消息发送模块300,用于定时在所述节点组发送所述目标通知消息,可以具体包括:
通过组内广播定时在所述节点组广播所述目标通知消息;
或者,通过中间件总线定时在所述节点组发送所述目标通知消息,所述节点组的节点通过所述中间件总线相互通信。
本发明实施例还提供一种节点,该节点可以是节点组内的节点,该节点可以通过程序形式装载上述所述的状态切换装置,以实现本发明实施例提供的状态切换方法。
可选的,所述节点可以是硬件节点也可以是软件节点;在一种硬件节点的实现方式中,图13示出了硬件节点的一种可选硬件框图,包括:至少一个处理器10,至少一个通信接口20,至少一个存储器30和至少一个通信总线40;
在本发明实施例中,处理器10、通信接口20、存储器30、通信总线40的数量为至少一个,且处理器10、通信接口20、存储器30通过通信总线40完成相互间的通信;
可选的,通信接口20可以为通信模块的接口,如GSM模块的接口;
处理器10可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器30可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
其中,存储器30存储有程序,处理器10调用存储器30所存储的程序,以执行本发明实施例提供的状态切换方法。
本发明实施例还提供一种存储介质,该存储介质可以存储执行本发明实施例提供的状态切换方法的程序。
可选的,所述程序可具体用于:
在第一状态下,检测连续的至少两个随机时间内是否在所述节点组接收到目标通知消息;所述目标通知消息用于通知所述节点组内已存在第二状态的节点;
若连续的至少两个随机时间内未接收到所述目标通知消息,切换状态为第二状态;
在第二状态下,定时在所述节点组发送所述目标通知消息;所述第二状态为提供预设服务的状态,所述第一状态与所述第二状态不同。
可选的,所述程序的细化实现和扩展实现可参照前文相应部分的描述,此处不再赘述。
本发明实施例还可提供一种节点组,包括多个节点,所述节点可被配置为执行本发明实施例提供的状态切换方法;可选的,所述节点可以例如图13所示硬件节点,或者也可以是软件节点。
虽然本发明实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (12)
1.一种状态切换方法,其特征在于,应用于节点组的节点,所述状态切换方法包括:
在第一状态下,检测连续的至少两个随机时间内是否在所述节点组接收到目标通知消息;所述目标通知消息用于通知所述节点组内已存在第二状态的节点;
若连续的至少两个随机时间内未接收到所述目标通知消息,切换状态为第二状态;
在第二状态下,定时在所述节点组发送所述目标通知消息;所述第二状态为提供预设服务的状态,所述第一状态与所述第二状态不同。
2.根据权利要求1所述的状态切换方法,其特征在于,所述检测连续的至少两个随机时间内是否在所述节点组接收到目标通知消息包括:
检测一个随机时间内是否在所述节点组接收到所述目标通知消息;
若所述一个随机时间内未接收到所述目标通知消息,等待至少一个随机时间,检测等待的至少一个随机时间内是否在所述节点组接收到所述目标通知消息。
3.根据权利要求2所述的状态切换方法,其特征在于,所述连续的至少两个随机时间内未接收到所述目标通知消息包括:所述一个随机时间内未接收到所述目标通知消息,且等待的至少一个随机时间内未接收到所述目标通知消息;
所述状态切换方法还包括:
若所述一个随机时间内接收到所述目标通知消息,或者,等待的至少一个随机时间内接收到所述目标通知消息,维持状态为第一状态。
4.根据权利要求1所述的状态切换方法,其特征在于,所述状态切换方法还包括:
在第二状态下,检测是否在所述节点组接收到目标通知消息;
若接收到目标通知消息,等待至少一个随机时间,检测等待的至少一个随机时间内是否连续接收到相同的目标通知消息;
若等待的至少一个随机时间内连续接收到相同的目标通知消息,切换状态为第一状态;
若等待的至少一个随机时间内未连续接收到相同的目标通知消息,维持状态为第二状态。
5.根据权利要求1-4任一项所述的状态切换方法,其特征在于,所述随机时间为从预设时间范围内随机选择的时间;所述随机时间大于预设倍数的定时时间。
6.根据权利要求1-4任一项所述的状态切换方法,其特征在于,所述状态切换方法还包括:
在启动所述节点时,设置所述节点的状态为第一状态。
7.根据权利要求1-4任一项所述的状态切换方法,其特征在于,所述节点组的节点位于同一地域的同一局域网内,或者,同一地域的不同局域网内,或者,不同地域的不同局域网内。
8.根据权利要求1-4任一项所述的状态切换方法,其特征在于,所述定时在所述节点组发送所述目标通知消息包括:
通过组内广播定时在所述节点组广播所述目标通知消息;
或者,通过中间件总线定时在所述节点组发送所述目标通知消息,所述节点组的节点通过所述中间件总线相互通信。
9.一种状态切换装置,其特征在于,应用于节点组的节点,所述状态切换装置包括:
消息检测模块,用于在第一状态下,检测连续的至少两个随机时间内是否在所述节点组接收到目标通知消息;所述目标通知消息用于通知所述节点组内已存在第二状态的节点;
切换模块,用于若连续的至少两个随机时间内未接收到所述目标通知消息,切换状态为第二状态;
消息发送模块,用于在第二状态下,定时在所述节点组发送所述目标通知消息;所述第二状态为提供预设服务的状态,所述第一状态与所述第二状态不同。
10.一种节点,其特征在于,包括至少一个存储器和至少一个处理器,所述存储器存储程序,所述处理器调用所述程序,执行权利要求1-8任一项所述的状态切换方法。
11.一种节点组,其特征在于,所述节点组包括多个节点,所述节点被配置为执行权利要求1-8任一项所述的状态切换方法。
12.一种存储介质,其特征在于,所述存储介质存储执行权利要求1-8任一项所述的状态切换方法的程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910576993.XA CN110300023A (zh) | 2019-06-28 | 2019-06-28 | 一种状态切换方法、装置、节点、节点组及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910576993.XA CN110300023A (zh) | 2019-06-28 | 2019-06-28 | 一种状态切换方法、装置、节点、节点组及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110300023A true CN110300023A (zh) | 2019-10-01 |
Family
ID=68029482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910576993.XA Pending CN110300023A (zh) | 2019-06-28 | 2019-06-28 | 一种状态切换方法、装置、节点、节点组及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110300023A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111538763A (zh) * | 2020-04-24 | 2020-08-14 | 咪咕文化科技有限公司 | 一种确定集群中主节点的方法、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6145018A (en) * | 1997-11-24 | 2000-11-07 | Intel Corporation | Method for hindering some types of nodes from becoming a bus arbitration controller |
US20140376361A1 (en) * | 2013-06-19 | 2014-12-25 | Cisco Technology, Inc. | Fast reroute using different frequency-hopping schedules |
CN106330475A (zh) * | 2015-06-15 | 2017-01-11 | 中兴通讯股份有限公司 | 一种通信系统中管理主备节点的方法和装置及高可用集群 |
CN106911524A (zh) * | 2017-04-27 | 2017-06-30 | 紫光华山信息技术有限公司 | 一种ha实现方法及装置 |
CN107231674A (zh) * | 2017-05-27 | 2017-10-03 | 郑州云海信息技术有限公司 | 一种集群自组网的方法与装置 |
-
2019
- 2019-06-28 CN CN201910576993.XA patent/CN110300023A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6145018A (en) * | 1997-11-24 | 2000-11-07 | Intel Corporation | Method for hindering some types of nodes from becoming a bus arbitration controller |
US20140376361A1 (en) * | 2013-06-19 | 2014-12-25 | Cisco Technology, Inc. | Fast reroute using different frequency-hopping schedules |
CN106330475A (zh) * | 2015-06-15 | 2017-01-11 | 中兴通讯股份有限公司 | 一种通信系统中管理主备节点的方法和装置及高可用集群 |
CN106911524A (zh) * | 2017-04-27 | 2017-06-30 | 紫光华山信息技术有限公司 | 一种ha实现方法及装置 |
CN107231674A (zh) * | 2017-05-27 | 2017-10-03 | 郑州云海信息技术有限公司 | 一种集群自组网的方法与装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111538763A (zh) * | 2020-04-24 | 2020-08-14 | 咪咕文化科技有限公司 | 一种确定集群中主节点的方法、电子设备和存储介质 |
CN111538763B (zh) * | 2020-04-24 | 2023-08-15 | 咪咕文化科技有限公司 | 一种确定集群中主节点的方法、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10028305B2 (en) | Paging collision resolution method for dual SIM card terminal and a dual SIM card terminal | |
CN106256166B (zh) | 无线通信系统中由rrc连接状态的终端执行的装置到装置d2d操作法及用该法的终端 | |
CN103167610B (zh) | 用于多sim用户设备的智能资源控制 | |
US9203896B2 (en) | Method and apparatus for data interaction | |
CN100579076C (zh) | 一种邻居关系建立方法和路由器 | |
CN109982347A (zh) | 用于辅助小区通信失败场景的通信方法 | |
CN107079244A (zh) | 用于在无线通信系统中由用户设备使用例外资源执行设备到设备(d2d)操作的方法及使用该方法的用户设备 | |
CN110300023A (zh) | 一种状态切换方法、装置、节点、节点组及存储介质 | |
CN101848157A (zh) | 控制路由更新报文产生的方法及网络设备 | |
CN106063358B (zh) | 电路域回落终端通信处理方法和设备 | |
CN113423099B (zh) | 蓝牙广播事件调度方法、装置及蓝牙设备 | |
CN112911520A (zh) | 自组网中确定主节点的方法、装置及存储介质 | |
JP4273669B2 (ja) | ノード情報管理システム及びノード | |
CN103582064A (zh) | 保证数据业务连续性的方法及装置 | |
CN109413668B (zh) | 双卡配置处理方法、装置、终端及计算机可读存储介质 | |
JP2009049500A (ja) | 無線通信装置、無線通信方法、無線通信プログラム、ノード及びネットワーク修復システム | |
CN104041167B (zh) | 一种资源分配方法和装置 | |
CN109510882B (zh) | 游戏客户端之间的通信方法、装置、存储介质和电子装置 | |
CN105325017B (zh) | 一种分配承载资源的方法和装置 | |
US20180069830A1 (en) | Method and System for Reducing PIM Protocol DR Change | |
CN107453995A (zh) | 一种指定路由器选举方法、装置、路由器及通信系统 | |
WO2011131004A1 (zh) | 最好小区上报处理方法及终端 | |
CN111835551A (zh) | 运行通信基础设施中的网络部件和监控实体的方法和设备 | |
JP6279419B2 (ja) | ユーザ装置及びセル検索方法 | |
CN109818870A (zh) | 一种组播选路方法、装置、业务板及机器可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191001 |