设备故障恢复的方法和装置转让专利

申请号 : CN201710719076.3

文献号 : CN109428740B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 洪涛郑伟朱乃盘

申请人 : 华为技术有限公司

摘要 :

本申请提供了一种设备故障恢复的方法和装置,属于计算机技术领域。该方法包括:第一备设备接收主设备周期性发送的心跳检测消息,当连续N个周期未接收到所述主设备发送的心跳检测消息时,所述第一备设备向其它备设备发送第一故障询问消息,其中,N为预设数值,所述第一故障询问消息用于询问是否连续N个周期未接收到所述主设备发送的心跳检测消息,所述其它备设备为与所述主设备属于同一设备组的备设备中除所述第一备设备之外的备设备,当接收到所述其它备设备中有数目符合预设条件的备设备发送的第一故障确认消息时,所述第一备设备发起主设备重选。通过本申请,可以提高确定主设备故障的准确率。

权利要求 :

1.一种设备故障恢复的方法,其特征在于,所述方法包括:

第一备设备接收主设备周期性发送的心跳检测消息;

当连续N个周期未接收到所述主设备发送的心跳检测消息时,所述第一备设备向其它备设备发送第一故障询问消息,其中,N为预设数值,所述第一故障询问消息用于询问是否连续N个周期未接收到所述主设备发送的心跳检测消息,所述其它备设备为与所述主设备属于同一设备组的备设备中除所述第一备设备之外的备设备;

当接收到所述其它备设备中有数目符合预设条件的备设备发送的第一故障确认消息时,所述第一备设备发起主设备重选;

在主设备重选结果为所述第一备设备的情况下,所述第一备设备将所述第一备设备的数据模型确定为主数据模型,所述第一备设备与数据模型所属的存储部件位于相同设备,所述数据模型指存储数据的一套接口;

所述第一备设备在正常运行的情况下,通知业务引导设备进行主设备更新,以使所述业务引导设备将业务处理请求发送至所述第一备设备。

2.根据权利要求1所述的方法,其特征在于,所述当接收到所述其它备设备中有数目符合预设条件的备设备发送的第一故障确认消息时,所述第一备设备发起主设备重选,包括:当接收到所述其它备设备中有超过一半的备设备发送的第一故障确认消息时,所述第一备设备发起主设备重选。

3.根据权利要求1或2所述的方法,其特征在于,所述第一备设备发起主设备重选,包括:所述第一备设备向所述其它备设备发送投票选主消息,其中,所述投票选主消息用于询问是否将所述第一备设备选取为主设备;

当接收到所述其它备设备中有数目符合预设条件的备设备发送的同意选主消息时,所述第一备设备将工作模式切换到主设备工作模式。

4.根据权利要求3所述的方法,其特征在于,所述第一备设备向所述其它备设备发送投票选主消息,包括:如果连续M个周期未接收到控制设备发送的心跳检测消息,则所述第一备设备向所述其它备设备发送第二故障询问消息,其中,M为预设数值,所述第二故障询问消息用于询问是否连续M个周期未接收到所述控制设备发送的心跳检测消息;

当接收到所述其它备设备中有数目符合预设条件的备设备发送的第二故障确认消息时,所述第一备设备向所述其它备设备发送投票选主消息。

5.根据权利要求1或2所述的方法,其特征在于,所述第一备设备发起主设备重选,包括:所述第一备设备向控制设备发送主设备重选请求;

当接收到所述控制设备发送的主设备指示消息时,所述第一备设备将工作模式切换到主设备工作模式。

6.根据权利要求5所述的方法,其特征在于,所述第一备设备向控制设备发送主设备重选请求,包括:如果所述第一备设备在当前时刻之前的预设时长内接收到所述控制设备发送的心跳检测消息,则所述第一备设备向所述控制设备发送主设备重选请求。

7.根据权利要求5所述的方法,其特征在于,所述第一备设备向控制设备发送主设备重选请求,包括:所述第一备设备向所述其它备设备发送投票咨询消息,其中,所述投票咨询消息用于询问是否将所述第一备设备选取为选主咨询代表;

当接收到所述其它备设备中有数目符合预设条件的备设备发送的同意咨询消息时,所述第一备设备向所述控制设备发送主设备重选请求。

8.根据权利要求5所述的方法,其特征在于,所述主设备重选请求中还携带有发送所述第一故障确认消息的备设备的标识。

9.一种设备故障恢复的装置,其特征在于,所述装置包括:处理器、接收器和发射器,其中:所述接收器,用于接收主设备周期性发送的心跳检测消息;

所述发射器,用于当连续N个周期未接收到所述主设备发送的心跳检测消息时,向其它备设备发送第一故障询问消息,其中,N为预设数值,所述第一故障询问消息用于询问是否连续N个周期未接收到所述主设备发送的心跳检测消息,所述其它备设备为与所述主设备属于同一设备组的备设备中除第一备设备之外的备设备;

所述处理器,用于当接收到所述其它备设备中有数目符合预设条件的备设备发送的第一故障确认消息时,发起主设备重选;在主设备重选结果为所述第一备设备的情况下,将所述第一备设备的数据模型确定为主数据模型,所述第一备设备与数据模型所属的存储部件位于相同设备,所述数据模型指存储数据的一套接口;

所述发射器,还用于在正常运行的情况下,通知业务引导设备进行主设备更新,以使所述业务引导设备将业务处理请求发送至所述第一备设备。

10.根据权利要求9所述的装置,其特征在于,所述处理器,用于:

当接收到所述其它备设备中有超过一半的备设备发送的第一故障确认消息时,发起主设备重选。

11.根据权利要求9或10所述的装置,其特征在于,所述处理器控制所述发射器向所述其它备设备发送投票选主消息,其中,所述投票选主消息用于询问是否将所述第一备设备选取为主设备;

所述处理器,用于当接收到所述其它备设备中有数目符合预设条件的备设备发送的同意选主消息时,将工作模式切换到主设备工作模式。

12.根据权利要求11所述的装置,其特征在于,所述处理器控制所述发射器如果连续M个周期未接收到控制设备发送的心跳检测消息,则向所述其它备设备发送第二故障询问消息,其中,M为预设数值,所述第二故障询问消息用于询问是否连续M个周期未接收到所述控制设备发送的心跳检测消息;

所述处理器控制所述发射器当接收到所述其它备设备中有数目符合预设条件的备设备发送的第二故障确认消息时,向所述其它备设备发送投票选主消息。

13.根据权利要求9或10所述的装置,其特征在于,所述处理器控制所述发射器向控制设备发送主设备重选请求;

所述处理器,用于当接收到所述控制设备发送的主设备指示消息时,将工作模式切换到主设备工作模式。

14.根据权利要求13所述的装置,其特征在于,所述处理器控制所述发射器如果在当前时刻之前的预设时长内接收到所述控制设备发送的心跳检测消息,则向所述控制设备发送主设备重选请求。

15.根据权利要求13所述的装置,其特征在于,所述处理器控制所述发射器向所述其它备设备发送投票咨询消息,其中,所述投票咨询消息用于询问是否将所述第一备设备选取为选主咨询代表;

所述处理器控制所述发射器当接收到所述其它备设备中有数目符合预设条件的备设备发送的同意咨询消息时,向所述控制设备发送主设备重选请求。

16.根据权利要求13所述的装置,其特征在于,所述主设备重选请求中还携带有发送所述第一故障确认消息的备设备的标识。

17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有指令,当所述计算机可读存储介质在设备故障恢复的装置上运行时,使得所述装置执行所述权利要求1-8任一所述的方法。

说明书 :

设备故障恢复的方法和装置

技术领域

[0001] 本申请涉及计算机技术领域,特别涉及一种设备故障恢复的方法和装置。

背景技术

[0002] 在云环境中,包括多个业务处理系统,每个业务处理系统由多个设备组成,设备可以是虚拟机或物理机等。为了避免业务处理系统中一个设备出现故障后,整个业务处理系统不能正常运行,一般是为设备(后续可以称为主设备)创建至少一个备设备,主设备和至少一个备设备分别部署在不同的实体设备上,当某个业务处理系统中的主设备出现故障时,从备设备中重新选取主设备,这样该业务处理系统可以正常运行。
[0003] 现有技术中,对应每个设备都设置有故障检测代理,故障检测代理与控制设备周期性进行心跳检测,控制设备每隔预设时长向每个设备的故障检测代理发送心跳检测消息,故障检测代理接收到心跳检测消息后,会向控制设备发送心跳回复信息。
[0004] 当故障检测代理检测到对应的设备出现故障时,向控制设备发送设备故障消息,如果故障消息是主设备对应的故障检测代理发送的,则控制设备可以确定主设备出现故障。或者,如果控制设备在向主设备对应的故障检测代理发送心跳检测消息后的预设时长之内,未接收到主设备的故障检测代理发送的心跳回复消息,则确定主设备出现故障。
[0005] 控制设备确定主设备出现故障后,可以从主设备对应的备设备中选取一个备设备作为主设备,并通知该备设备变为主设备,并且控制设备通知业务引导设备进行主设备更新。
[0006] 在实现本申请的过程中,发明人发现现有技术至少存在以下问题:
[0007] 如果是故障检测代理本身出现故障,控制设备由于接收不到故障检测代理发送的心跳回复消息,也会确认主设备故障,从而对主设备的故障检测不准确。

发明内容

[0008] 为了解决现有技术的问题,本发明实施例提供了一种设备故障恢复的方法和装置。所述技术方案如下:
[0009] 第一方面,提供了一种设备故障恢复的方法,该方法包括:
[0010] 第一备设备接收主设备周期性发送的心跳检测消息,当连续N个周期未接收到主设备发送的心跳检测消息时,第一备设备向其它备设备发送第一故障询问消息,第一故障询问消息用于询问是否连续N个周期未接收到主设备发送的心跳检测消息,当接收到其它备设备中有数目符合预设条件的备设备发送的第一故障确认消息时,第一备设备发起主设备重选。
[0011] 其中,第一备设备为业务处理系统中一个主设备对应的多个备设备中的任一备设备,其它备设备为与主设备属于同一设备组的备设备中除第一备设备之外的备设备。心跳检测消息的发送周期可以由技术人员预设,并且存储至主设备中。第一故障询问消息用于询问是否连续N个周期未接收到主设备发送的心跳检测消息,可以由技术人员预设,预设条件可以由技术人员预设,并且存储至各备设备中,如超过一半等。
[0012] 本发明实施例所示的方案,在部署好业务处理系统后,主设备可以周期性向主设备对应的多个备设备发送心跳检测消息,第一备设备接收到主设备周期性发送的心跳检测消息后,可以向主设备反馈心跳回复消息,心跳回复消息用于告知主设备自己正常运行。当连续N个周期未接收到主设备发送的心跳检测消息时,第一备设备向其它备设备发送第一故障询问消息,其它备设备接收到第一备设备发送的第一故障询问消息后,如果确定自己也连续N个周期未接收到主设备发送的心跳检测消息,可以向第一备设备发送第一故障确认消息,当接收到其它备设备中有数目符合预设条件(如超过一半等)的备设备发送的第一故障确认消息时,第一备设备发起主设备重选,如果重选结果为第一备设备,则第一备设备可以将工作模式切换到主设备工作模式。
[0013] 在一种可能的实现方式中,当接收到其它备设备中有超过一半的备设备发送的第一故障确认消息时,第一备设备发起主设备重选。
[0014] 在一种可能的实现方式中,第一备设备向其它备设备发送投票选主消息,其中,投票选主消息用于询问是否将第一备设备选取为主设备;当接收到其它备设备中有数目符合预设条件的备设备发送的同意选主消息时,第一备设备将工作模式切换到主设备工作模式。
[0015] 本发明实施例所示的方案,主设备重选的方式是:第一备设备可以接收其它备设备发送第一故障确认消息,当接收到其它备设备中有超过一半的备设备发送的第一故障确认消息时,第一备设备可以向其它备设备发送投票选主消息。其它备设备接收到第一备设备发送的投票选主消息时,可以记录接收到投票选主消息的接收时间点,如果第一备设备发送的投票选主消息对应的接收时间点最早,则向第一备设备发送同意选主消息,如果第一备设备发送的投票选主消息对应的接收时间点不是最早,则向第一备设备发送拒绝选主消息。当第一备设备接收到其它备设备中有数目符合预设条件(如数目超过一半等)的备设备发送的同意选主消息时,第一备设备将工作模式切换到主设备工作模式。这样,备设备可以进行自主选主。
[0016] 在一种可能的实现方式中,如果连续M个周期未接收到控制设备发送的心跳检测消息,则第一备设备向其它备设备发送第二故障询问消息,其中,M为预设数值,第二故障询问消息用于询问是否连续M个周期未接收到控制设备发送的心跳检测消息;当接收到其它备设备中有数目符合预设条件的备设备发送的第二故障确认消息时,第一备设备向其它备设备发送投票选主消息。
[0017] 本发明实施例所示的方案,在检测到控制设备出现故障后,备设备可以进行自主选主,进而业务处理系统还可以正常运行。
[0018] 在一种可能的实现方式中,第一备设备将工作模式切换到主设备工作模式之后,第一备设备通知业务引导设备进行主设备更新。
[0019] 本发明实施例所示的方案,第一备设备将工作模式切换到主设备工作模式之后,为了使业务引导设备将业务处理请求发送给自己处理,第一备设备可以通知业务引导设备进行主设备更新。
[0020] 在一种可能的实现方式中,第一备设备向控制设备发送主设备重选请求;当接收到控制设备发送的主设备指示消息时,第一备设备将工作模式切换到主设备工作模式。
[0021] 本发明实施例所示的方案,第一备设备在确认主设备发生故障后,可以通知控制设备进行重新选主,控制设备接收到第一备设备发送的主设备重选请求后,可以基于各备设备的运行情况信息(如备设备的地理位置信息、备设备的业务处理能力等),重新选主。当接收到控制设备发送的主设备指示消息时,第一备设备将工作模式切换到主设备工作模式。
[0022] 在一种可能的实现方式中,如果第一备设备在当前时刻之前的预设时长内接收到控制设备发送的心跳检测消息,则第一备设备向控制设备发送主设备重选请求。
[0023] 本发明实施例所示的方案,第一备设备在向控制设备发送主设备重选请求之前,还可以确定控制设备是否可以正常运行,如果控制设备可以正常运行,可以向控制设备发送主设备重选请求。
[0024] 在一种可能的实现方式中,第一备设备向其它备设备发送投票咨询消息,其中,投票咨询消息用于询问是否将第一备设备选取为选主咨询代表;当接收到其它备设备中有数目符合预设条件的备设备发送的同意咨询消息时,第一备设备向控制设备发送主设备重选请求。
[0025] 本发明实施例所示的方案,备设备在向控制设备发送主设备重选请求时,还可以选取主咨询代表,第一备设备向其它备设备发送投票咨询消息,当接收到其它备设备中有数目符合预设条件(如数目超过一半等)的备设备发送的同意咨询消息时,第一备设备确定自己为选主咨询代表,向控制设备发送主设备重选请求。这样,由一个备设备向控制设备发送主设备重选请求,可以使控制设备更准确的判断是否需要进行重新选择主设备。
[0026] 在一种可能的实现方式中,主设备重选请求中还携带有发送第一故障确认消息的备设备的标识。
[0027] 本发明实施例所示的方案,主设备重选请求中还携带有发送第一故障确认消息的备设备的标识,这样由于发送第一故障确认消息的备设备都是可以正常使用的,控制设备从这些备设备中选取主设备,可以使控制设备重新选取的主设备的可用性比较高。
[0028] 在一种可能的实现方式中,第一备设备将工作模式切换到主设备工作模式之后,第一备设备向控制设备发送设备更新消息,以使控制设备通知业务引导设备进行主设备更新。
[0029] 本发明实施例所示的方案,第一备设备将工作模式切换到主设备工作模式之后,为了使业务引导设备将业务处理请求发送给自己处理,第一备设备可以向控制设备发送设备更新消息,控制设备接收到设备更新消息后,可以通知业务引导设备进行主设备更新。
[0030] 第二方面,提供了一种设备故障恢复的装置,该装置包括处理器、发射器和接收器,所述处理器通过执行指令来实现上述第一方面所提供的设备故障恢复的方法。
[0031] 第三方面,提供了一种设备故障恢复的装置,该装置包括:
[0032] 接收模块,用于接收主设备周期性发送的心跳检测消息;
[0033] 发送模块,用于当连续N个周期未接收到所述主设备发送的心跳检测消息时,向其它备设备发送第一故障询问消息,其中,N为预设数值,所述第一故障询问消息用于询问是否连续N个周期未接收到所述主设备发送的心跳检测消息,其中,所述其它备设备为与所述主设备属于同一设备组的备设备中除所述第一备设备之外的备设备;
[0034] 发起模块,用于当接收到所述其它备设备中有数目符合预设条件的备设备发送的第一故障确认消息时,发起主设备重选。
[0035] 在一种可能的实现方式中,所述发起模块,用于:
[0036] 当接收到所述其它备设备中有超过一半的备设备发送的第一故障确认消息时,所述第一备设备发起主设备重选。
[0037] 在一种可能的实现方式中,所述发起模块用于:
[0038] 向所述其它备设备发送投票选主消息,其中,所述投票选主消息用于询问是否将所述第一备设备选取为主设备;
[0039] 当接收到所述其它备设备中有数目符合预设条件的备设备发送的同意选主消息时,将工作模式切换到主设备工作模式。
[0040] 在一种可能的实现方式中,所述发起模块用于:
[0041] 如果连续M个周期未接收到控制设备发送的心跳检测消息,则向所述其它备设备发送第二故障询问消息,其中,M为预设数值,所述第二故障询问消息用于询问是否连续M个周期未接收到所述控制设备发送的心跳检测消息;
[0042] 当接收到所述其它备设备中有数目符合预设条件的备设备发送的第二故障确认消息时,向所述其它备设备发送投票选主消息。
[0043] 在一种可能的实现方式中,所述发起模块用于:
[0044] 向控制设备发送主设备重选请求;
[0045] 当接收到所述制设备发送的主设备指示消息时,将工作模式切换到主设备工作模式。
[0046] 在一种可能的实现方式中,所述发起模块用于:
[0047] 如果在当前时刻之前的预设时长内接收到所述控制设备发送的心跳检测消息,则向所述控制设备发送主设备重选请求。
[0048] 在一种可能的实现方式中,所述发起模块用于:
[0049] 向所述其它备设备发送投票咨询消息,其中,所述投票咨询消息用于询问是否将所述第一备设备选取为选主咨询代表;
[0050] 当接收到所述其它备设备中有数目符合预设条件的备设备发送的同意咨询消息时,向所述控制设备发送主设备重选请求。
[0051] 在一种可能的实现方式中,所述主设备重选请求中还携带有发送所述第一故障确认消息的备设备的标识。
[0052] 在一种可能的实现方式中,其特征在于,所述发送模块,还用于:
[0053] 向所述控制设备发送设备更新消息,以使所述控制设备通知业务引导设备进行主设备更新。
[0054] 第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有指令,当所述计算机可读存储介质在设备故障恢复装置上运行时,使得设备故障恢复装置执行上述第一方面所提供了设备故障恢复的方法。
[0055] 第五方面,提供了一种包含指令的计算机程序产品,当其在设备故障恢复的装置上运行时,使得设备故障恢复的装置执行上述第一方面所提供的设备故障恢复的方法。
[0056] 本发明实施例提供的技术方案带来的有益效果是:
[0057] 本发明实施例,第一备设备接收主设备周期性发送的心跳检测消息,当连续N个周期未接收到主设备发送的心跳检测消息时,第一备设备向其它备设备发送第一故障询问消息,其中,N为预设数值,第一故障询问消息用于询问是否连续N个周期未接收到主设备发送的心跳检测消息,其它备设备为与主设备属于同一设备组的备设备中除第一备设备之外的备设备,当接收到其它备设备中有数目符合预设条件的备设备发送的第一故障确认消息时,第一备设备发起主设备重选,这样,是由多个备设备协商确定主设备是否出现故障,而不是由控制设备和故障检测代理确定主设备是否出现故障,从而可以提高确定主设备故障的准确率。

附图说明

[0058] 图1是本发明实施例提供的一种物理机的结构示意图;
[0059] 图2是本发明实施例提供的一种虚拟机所运行的实体设备的结构示意图;
[0060] 图3是本发明实施例提供的一种设备故障恢复的方法的流程示意图;
[0061] 图4是本发明实施例提供的一种设备故障恢复的方法的流程示意图;
[0062] 图5是本发明实施例提供的一种业务处理的流程示意图;
[0063] 图6是本发明实施例提供的一种设备故障恢复的方法的流程示意图;
[0064] 图7是本发明实施例提供的一种部署业务处理系统的流程示意图;
[0065] 图8是本发明实施例提供的一种部署业务处理系统的流程示意图;
[0066] 图9是本发明实施例提供的一种设备故障恢复的装置的结构示意图。

具体实施方式

[0067] 为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0068] 为了便于对本发明实施例的理解,下面首先介绍本发明实施例涉及的系统架构:
[0069] 本发明实施例适用于云环境中的业务处理系统,业务处理系统中包括一个主设备和多个备设备,这些设备具有以下特征:1)占用一定的中央处理资源、内存资源等,2)可以独立部署和运行,如设备可以是虚拟机、物理机等。本发明实施例涉及两种业务处理系统,第一种业务处理系统除了包括一个主设备和多个备设备,还包括业务引导设备、控制设备、名字服务设备和设备部署器,其中,业务引导设备用于当接收到业务处理请求时,将业务处理请求转发至主设备,控制设备用于在部署业务处理系统时选取主设备、以及在主设备故障时选取主设备,名字服务设备用于记录主设备和各个备设备的IP(Internet Protocol,网络之间互连协议)地址、端口号等,设备部署器用于通知主设备和备设备进行切换工作模式。可选的,名字服务设备、设备部署器和控制设备也可以是同一设备的不同功能模块。第二种业务处理系统除了包括一个主设备和多个备设备,还包括业务引导设备、名字服务设备和设备部署器,其中,业务引导设备用于当接收到业务处理请求时,将业务处理请求转发至主设备,名字服务设备用于记录主设备和各个备设备的IP地址、端口号等,设备部署器用于通知主设备和备设备进行切换工作模式。可选的,名字服务设备和设备部署器也可以是同一设备的不同功能模块。
[0070] 本发明实施例提供了一种设备故障恢复的方法,该方法的执行主体可以是设备。
[0071] 如图1所示,设备是物理机,设备可以包括接收器110、处理器120、发射器130和存储器140,其中,接收器110可以用于实现数据和消息的接收。发射器130可用于实现数据和消息的发送,处理器120通过运行软件程序以及模块,从而执行各种功能应用以及数据处理,存储器140可以用于存储软件程序以及模块等可执行的指令、在数据传输过程中需要存储的数据。
[0072] 处理器120是设备的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行软件程序以及模块,执行各种功能应用以及数据处理,从而对设备进行整体监控。可选的,处理器120可以包括一个或者一个以上处理单元,该处理单元可以是中央处理单元(central processing unit,CPU)或者网络处理器(network processor,NP)等。
[0073] 存储器140可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM),可编程只读存储器(Programmable Read-Only Memory,PROM),只读存储器(Read Only Memory,ROM),磁存储器,快闪存储器,磁盘或光盘。
[0074] 如图2所示,设备是虚拟机,虚拟机运行于实体设备,该实体设备可以包括接收器210、处理器220、发射器230和存储器240,其中,接收器210可以用于实现数据和消息的接收。发射器230可用于实现数据和消息的发送,处理器220通过运行软件程序以及模块,从而执行各种功能应用以及数据处理,存储器240可以用于存储软件程序以及模块等可执行的指令、在数据传输过程中需要存储的数据。
[0075] 处理器220是实体设备的控制中心,利用各种接口和线路连接整个实体设备的各个部分,通过运行软件程序以及模块,执行各种功能应用以及数据处理,从而对实体设备进行整体监控。可选的,处理器220可以包括一个或者一个以上处理单元,该处理单元可以是中央处理单元或者网络处理器等。
[0076] 存储器240可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器,电可擦除可编程只读存储器,可擦除可编程只读存储器,可编程只读存储器,只读存储器,磁存储器,快闪存储器,磁盘或光盘。
[0077] 如图3所示,该方法的执行流程可以如下:
[0078] 步骤301,第一备设备接收主设备周期性发送的心跳检测消息。
[0079] 其中,第一备设备为业务处理系统中一个主设备对应的多个备设备中的任一备设备。心跳检测消息的发送周期可以由技术人员预设,并且存储至主设备中。
[0080] 在实施中,在部署好业务处理系统后(部署业务处理系统的方法在后面详细描述),主设备可以周期性向与自己属于同一设备组的多个备设备发送心跳检测消息,各备设备中的第一备设备接收到主设备周期性发送的心跳检测消息后,可以向主设备反馈心跳回复消息,心跳回复消息用于告知主设备自己正常运行,此处可以通过有线网络发送、也可以通过无线网络发送,本发明实施例不做限定。
[0081] 步骤302,当连续N个周期未接收到主设备发送的心跳检测消息时,第一备设备向其它备设备发送第一故障询问消息。
[0082] 其中,N为预设数值,可以由技术人员预设,并且存储至备设备中,如5、6等,第一故障询问消息用于询问是否连续N个周期未接收到主设备发送的心跳检测消息,可以由技术人员预设,其它备设备为与主设备属于同一设备组的备设备中除第一备设备之外的备设备,步骤302中的周期与步骤301中提到的周期相同。
[0083] 在实施中,第一备设备接收到主设备发送的心跳检测消息后,可以记录心跳检测消息的接收时间点,然后当接收时间点之后的周期内未接收到主设备发送的心跳检测消息时,备设备可以检测后续是否未接收到主设备发送的心跳检测消息,当第一备设备连续N个周期未接收到主设备发送的心跳检测消息时,第一备设备可以获取预先存储的第一故障询问消息,然后向其它备设备发送第一故障询问消息。其它备设备接收到第一备设备发送的第一故障询问消息后,如果自己也连续N个周期未接收到主设备发送的心跳检测消息,则其它备设备可以向第一备设备发送第一故障确认消息。
[0084] 另外,其它备设备接收到第一备设备发送的第一故障询问消息后,如果在当前时刻之前的预设时长内接收到主设备发送的心跳检测消息(预设时长可以由技术人员预设,并且存储至第一备设备中,大小可以与心跳检测消息的发送周期相同),则其它备设备可以向第一备设备发送未出现故障回复消息。
[0085] 可选的,第一备设备也可以周期性向同属同一主设备的其它备设备发送心跳检测消息,其它备设备接收到第一备设备发送的心跳检测消息时,可以向第一备设备发送心跳回复消息,以告知第一备设备自己正常运行,当第一备设备持续一段时长未接收到其它备设备中某个备设备发送的心跳回复消息时,第一备设备可以确定该备设备故障,后续发送第一故障询问消息时,可以不向发生故障的备设备发送第一故障询问消息,可以节约传输资源,这样步骤302中的其它备设备为与第一备设备同属同一主设备的备设备中未发生故障的备设备。
[0086] 可选的,如果旧的主设备还可以缓慢的处理发生故障之前接收到的业务处理请求,而新的主设备也接收到该业务处理请求,则新的主设备与旧的主设备同时处理同一业务,如同时往同一数据块写数据,出现两个主设备的情况,本发明实施例可以采用如下方法:主设备周期性向对应的各备设备发送心跳检测消息,当连续N个周期未接收到各备设备发送的心跳回复消息时,确认自身故障,可以自动从主设备降为备设备,主设备将自身正在处理的业务全部暂停,这样,旧的主设备将不再执行业务处理,任何时刻仅有一个主设备。
[0087] 步骤303,当接收到其它备设备中有数目符合预设条件的备设备发送的第一故障确认消息时,第一备设备发起主设备重选。
[0088] 其中,第一故障确认消息是用于确认主设备发生故障的消息。主设备工作模式为可以正常进行业务处理的工作模式,预设条件可以由技术人员预设,并且存储至各备设备中,如超过一半等。
[0089] 在实施中,第一备设备可以接收其它备设备发送的第一故障确认消息,当接收到其它备设备中有数目符合预设条件的备设备发送第一故障确认消息时,第一备设备可以发起主设备重选(重选过程在后面详细叙述),如果重选结果为第一备设备,则第一备设备将工作模式切换到主设备工作模式。这样,是由备设备确认主设备是否发生故障,而且是多个备设备一起确认主设备是否发生故障,而不是故障检测代理检测主设备是否发生故障,从而可以提高确定主设备故障的准确率。
[0090] 可选的,数目符合预设条件为超过一半,相应的步骤303的处理可以如下:
[0091] 当接收到其它备设备中有超过一半的备设备发送的第一故障确认消息时,第一备设备发起主设备重选。
[0092] 在实施中,当接收到其它备设备中有超过一半的备设备发送的第一故障确认消息时,第一备设备发起主设备重选,如果重选结果为第一备设备,则第一备设备将工作模式切换到主设备工作模式。例如,一共有15个备设备,第一备设备接收到10个备设备发送的第一故障确认消息,第一备设备可以发起主设备重选。
[0093] 可选的,在步骤302中介绍其它备设备可以是正常运行的备设备,这样,由于其它备设备都是可以正常运行的备设备,可以更准确的判断是否接收到其它备设备中有超过一半的备设备发送的第一故障确认消息,进而可以更准确的判断主设备是否发生故障。
[0094] 本发明另一实施例,主设备发生故障后,备设备可以自主重新选取主设备,如图4所示,相应的处理可以如下:
[0095] 步骤401,第一备设备接收主设备周期性发送的心跳检测消息。
[0096] 步骤402,当连续N个周期未接收到主设备发送的心跳检测消息时,第一备设备向其它备设备发送第一故障询问消息。
[0097] 步骤401与步骤402的处理分别与步骤301与步骤302的处理相同,具体可参见步骤301与步骤302的详细描述,此处不再赘述。
[0098] 步骤403,当接收到其它备设备中有数目符合预设条件的备设备发送的第一故障确认消息时,第一备设备向其它备设备发送投票选主消息。
[0099] 其中,投票选主消息用于询问是否将第一备设备选取为主设备,预设条件可以由技术人员预设,并且存储至各备设备中,如超过一半等。
[0100] 在实施中,第一备设备可以接收其它备设备发送的第一故障确认消息,当接收到其它备设备中有数目符合预设条件(如数目超过一半等)的备设备发送的第一故障确认消息时,第一备设备可以向其它备设备发送投票选主消息。其它备设备接收到第一备设备发送的投票选主消息时,可以记录接收到投票选主消息的接收时间点,如果第一备设备发送的投票选主消息对应的接收时间点最早,则向第一备设备发送同意选主消息,如果第一备设备发送的投票选主消息对应的接收时间点不是最早,则向第一备设备发送拒绝选主消息。例如,主设备对应有三个备设备,三个备设备分别为A设备、B设备和C设备,第一备设备为A设备、B设备和C设备中任一设备,A设备分别向B设备和C设备发送投票选主消息,B设备分别向A设备和C设备发送投票选主消息,C设备分别向A设备和B设备发送投票选主消息,B接收到A设备发送的投票选主消息的接收时间点10:23:00,接收到C设备发送的投票选主消息的接收时间点为10:23:23,B设备可以向A设备发送同意选主消息,B设备可以向C设备发送拒绝选主消息。
[0101] 可选的,可以在控制设备故障的情况下,第一备设备向其它备设备发送投票选主消息,相应的步骤403的处理可以如下:
[0102] 当接收到其它备设备中有数目符合预设条件的备设备发送的第一故障确认消息时,如果连续M个周期未接收到控制设备发送的心跳检测消息,则第一备设备向其它备设备发送第二故障询问消息,当接收到其它备设备中有超过一半的备设备发送的第二故障确认消息时,第一备设备向其它备设备发送投票选主消息。
[0103] 其中,M为预设数值,可以由技术人员预设,并且存储至第一备设备中,如5、6等。第二故障询问消息用于询问是否连续M个周期未接收到控制设备发送的心跳检测消息,可以由技术人员预设。控制设备是主设备和对应的备设备的管理设备。
[0104] 在实施中,业务处理系统开始运行后,控制设备周期性向主设备对应的多个备设备发送心跳检测消息,备设备接收到控制设备发送的心跳检测消息时,可以向控制设备发送心跳回复消息,以告知控制设备自己正常运行,并且备设备接收到控制设备发送的心跳检测消息后,可以记录心跳检测消息的接收时间点,然后当接收时间点之后的周期内未接收到控制设备发送的心跳检测消息时,备设备可以检测后续是否未接收到控制设备发送的心跳检测消息。
[0105] 第一备设备可以接收其它备设备发送第一故障确认消息,当接收到其它备设备中有超过一半的备设备发送第一故障确认消息时,可以确定第一备设备是否已经连续M个周期未接收到控制设备发送的心跳检测消息,如果第一备设备已经连续M个周期未接收到控制设备发送的心跳检测消息,第一备设备可以获取预先存储的第二故障询问消息,然后向其它备设备发送第二故障询问消息。其它备设备接收到第一备设备发送的第二故障询问消息后,如果自己也连续M个周期未接收到控制设备发送的心跳检测消息,可以向第一备设备发送第二故障确认消息,如果在当前时刻之前的预设时长内接收到主设备发送的心跳检测消息(预设时长可以由技术人员预设,并且存储至第一备设备中,大小可以与心跳检测消息的发送周期相同),则其它备设备可以向第一备设备发送未出现故障回复消息。当接收到其它备设备中有超过一半的备设备发送的第二故障确认消息时,第一备设备可以确认控制设备已发生故障,第一备设备可以向其它备设备发送投票选主消息。
[0106] 步骤404,当接收到其它备设备中有数目符合预设条件的备设备发送的同意选主消息时,第一备设备将工作模式切换到主设备工作模式。
[0107] 其中,主设备工作模式为可以正常进行业务处理的工作模式,预设条件可以由技术人员预设,并且存储至各备设备中,如超过一半等。
[0108] 在实施中,第一备设备可以记录接收到的同意选主消息,当接收到其它备设备中有数目符合预设条件(如数目超过一半等)的备设备发送的同意选主消息时,第一备设备可以将工作模式切换至主设备工作模式。例如,第一备设备分别向三个备设备发送投票选主消息,当接收到两个备设备发送的同意选主消息时,可以将工作模式切换至主设备工作模式。
[0109] 可选的,第一备设备将工作模式切换至主设备工作模式后,可以向其它设备发送主设备通知消息,以通知备设备主设备已发生切换。
[0110] 步骤405,第一备设备通知业务引导设备进行主设备更新。
[0111] 在实施中,第一备设备将工作模式切换至主设备工作模式后,可以检测自身是否可以正常运行,如果自身可以正常运行,第一备设备可以向设备部署器发送主设备更新请求,设备部署器可以将主设备更新请求转发至名字服务(Name Service,NS)设备。名字服务设备接收到设备部署器发送的主设备更新请求后,可以将第一备设备标注为主设备,并且将之前的主设备标注为故障。然后名字服务设备可以向业务引导设备发送主设备更新通知,并在其中携带第一备设备的标识,业务引导设备接收到名字服务设备发送的主设备更新通知后,可以解析主设备更新通知,并从其中获取到第一备设备的标识,然后将第一备设备的标识对应的备设备标记为主设备,并将之前的主设备标记为故障。如图5所示,当业务引导设备后续接收到客户端发送的业务处理请求时,可以将业务处理请求转发至主设备。
[0112] 例如,以存储读写数据服务场景为例,这个业务处理系统管理着一片数据区(4M*40),业务处理系统中包括多个锁(有一个锁是主设备,其余锁是备设备),业务处理系统中的每个锁管理着数据区中最小读写单元(4M)的读写权限。当主业务引导设备接收到用户使用的终端发送的数据写入请求时,可以将数据写入请求转发至主设备,主设备可以将数据先写入到一个最小读写单元中,如果该最小读写单元已写满,可以写入下一个最小读写单元。
[0113] 需要说明的是,本发明实施例中,控制设备、名字服务设备、业务引导设备和设备部署器所执行的功能可以由不同的设备分别执行,也可以由同一设备上不同的功能模块执行,本发明实施例不做限定。
[0114] 本发明另一实施例中,还提供了主设备发生故障后,控制设备重新选取主设备的处理,如图6所示,相应的处理可以如下:
[0115] 步骤601,第一备设备接收主设备周期性发送的心跳检测消息。
[0116] 步骤602,当连续N个周期未接收到主设备发送的心跳检测消息时,第一备设备向其它备设备发送第一故障询问消息。
[0117] 步骤601与步骤602的处理分别与步骤401与步骤402的处理相同,具体可参见步骤401与步骤402的详细描述,此处不再赘述。
[0118] 步骤603,当接收到其它备设备中有数目符合预设条件的备设备发送的第一故障确认消息时,第一备设备向控制设备发送主设备重选请求。
[0119] 在实施中,第一备设备可以接收其它备设备发送第一故障确认消息,当接收到其它备设备中有数目符合预设条件(如数目超过一半等)的备设备发送第一故障确认消息时,第一备设备可以向控制设备发送主设备重选请求。
[0120] 可选的,在控制设备未出现故障的情况下,第一备设备向控制设备发送主设备重选请求,相应的步骤603的处理可以如下:
[0121] 当接收到其它备设备中有数目符合预设条件的备设备发送的第一故障确认消息时,如果第一备设备在当前时刻之前的预设时长内接收到控制设备发送的心跳检测消息,则第一备设备向控制设备发送主设备重选请求。
[0122] 其中,预设时长可以由技术人员预设,并且存储至第一备设备中,预设时长一般大于心跳检测消息的发送周期,如1分钟等。
[0123] 在实施中,第一备设备可以接收其它备设备发送第一故障确认消息,当接收到其它备设备中有数目符合预设条件(如数目超过一半等)的备设备发送第一故障确认消息时,第一备设备可以确定是否在当前时刻之前的预设时长内接收到控制设备发送的心跳检测消息,如果第一备设备在当前时刻之前的预设时长内接收到控制设备发送的心跳检测消息,可以确定控制设备未发生故障,第一备设备可以向控制设备发送主设备重选请求。
[0124] 另外,如果第一备设备连续M个周期未接收到控制设备发送的心跳检测消息,可以确定控制设备已发生故障,可以由备设备自主选取主设备,相应的处理可以参见步骤403中的处理过程,此处不再赘述。
[0125] 可选的,第一备设备是被其它备设备推选出的咨询选主代表,相应的处理可以如下:当接收到其它备设备中有数目符合预设条件的备设备发送的第一故障确认消息时,第一备设备向其它备设备发送投票咨询消息;当接收到其它备设备中有数目符合预设条件的备设备发送的同意咨询消息时,第一备设备向控制设备发送主设备重选请求。
[0126] 其中,投票咨询消息用于询问是否将第一备设备选取为选主咨询代表,预设条件可以由技术人员预设,并且存储至各备设备中,如超过一半等。
[0127] 在实施中,第一备设备可以接收其它备设备发送第一故障确认消息,当接收到其它备设备中有数目符合预设条件(如数目超过一半等)的备设备发送第一故障确认消息时,可以向其它备设备发送投票咨询消息,其它备设备接收到第一备设备发送的投票咨询消息时,如果最早接收到第一备设备发送的投票咨询消息,可以向第一备设备发送同意咨询消息。当第一备设备接收到它备设备中有数目符合预设条件(如数目超过一半等)的备设备发送的同意咨询消息时,可以确定自己被选取为咨询选主代表,可以向控制设备发送主设备重选请求。
[0128] 步骤604,控制设备接收第一备设备发送的主设备重选请求。
[0129] 可选的,主设备重选请求中还携带有发送第一故障确认消息的备设备的标识。
[0130] 在实施中,主设备重选请求中还要携带备设备的标识,由于这些备设备的标识是向第一备设备发送第一故障确认消息的备设备,这样这些备设备的标识对应的备设备是未发生故障的,控制设备从未发生故障的备设备中选取出主设备,可以提高选取出的主设备的可用性。
[0131] 步骤605,控制设备基于第一备设备所属的主设备对应的多个备设备的运行情况信息,如果确定重选结果为第一备设备,则向第一备设备发送主设备指示消息。
[0132] 其中,运行情况信息包括备设备的地理位置信息、备设备的业务处理能力中的一种或多种。主设备指示消息用于指示第一备设备为主设备。
[0133] 在实施中,控制设备接收到第一备设备发送的主设备重选请求后,可以确定之前的主设备已故障,可以查看与主设备属于同一设备组的每个备设备的运行情况信息。可以将业务处理能力最高的备设备,确定为主设备,如果重选结果为第一备设备,可以向第一备设备发送主设备指示消息。或者,可以将距离即将处理的业务所属的设备距离最近的备设备,确定为主设备,如果重选结果为第一备设备,可以向第一备设备发送主设备指示消息。或者,可以使用以下公式来选取主设备,l=a*x+b*y,其中,x表示备设备的业务处理能力,y表示备设备与即将处理的业务所属的设备之间的距离,x为第一预设权值,对应备设备的业务处理能力,如0.6,y为第一预设权值,对应备设备与即将处理的业务所属的设备之间的距离,如0.4,x与y满足x+y=1,对于每个备设备都可以计算出对应的l,将l最大的备设备,确定为主设备,如果重选结果为第一备设备,可以向第一备设备发送主设备指示消息。
[0134] 需要说明的是,上述仅提供了一种选取主设备的规则,凡是控制设备基于亲和性和反亲和性选取主设备的方法,都适用于本发明实施例,本发明实施例不做限定。
[0135] 步骤606,当接收到控制设备发送的主设备指示消息时,第一备设备将工作模式切换到主设备工作模式。
[0136] 步骤607,第一备设备向控制设备发送设备更新消息,以使控制设备通知业务引导设备进行主设备更新。
[0137] 在实施中,第一备设备将工作模式切换为主设备更新模式后,可以检测是否可以正常运行,如果可以正常运行,可以向控制设备发送设备更新消息,控制设备接收到第一备设备发送的设备更新消息后,可以确定新的主设备可以正常运行,然后向名字服务设备发送主设备更新通知,并在主设备更新通知中携带第一备设备的标识。名字服务设备接收到控制设备发送的主设备更新通知后,可以从中解析出第一备设备的标识,然后将第一备设备的标识对应的备设备标注为主设备,并且将之前的主设备标注为故障。然后名字服务设备可以向业务引导设备发送主设备更新通知,并在其中携带第一备设备的标识,业务引导设备接收到名字服务设备发送的主设备更新通知后,可以解析主设备更新通知,并从其中获取到第一设备的标识,然后将第一备设备的标识对应的备设备标记为主设备,并将之前的主设备标记为故障。当业务引导设备接收到客户端发送的业务处理请求时,可以将业务处理请求转发至主设备。
[0138] 可选的,对于上述三个实施例,在确定出主设备后,还可以确定与主设备对应的数据模型为主数据模型,相应的处理可以如下:
[0139] 其中,数据模型指存储数据的一套接口,业务处理系统中每个设备都对应有数据模型,并且每个设备与其对应的数据模型所属的存储部件部署在同一设备上。
[0140] 在实施中,如果重选结果为第一备设备,第一备设备将工作模式切换为主设备工作模式后,可以将自己的数据模型确定为主数据模型,这样,数据模型与主设备同属同一设备,可以快速的将业务处理数据存储下来,然后开始执行新的业务处理,并且将存储下来的业务处理数据,同步至其它备设备对应的数据模型所属的存储部件中。这样,就解决了现有技术中数据模型与主设备不对应,而导致业务处理速度比较小的问题。
[0141] 本发明另一实施例中还提供了,对于存在控制设备的情况,主设备发生故障后,备设备可以自主重新选取主设备的实施例,如图7所示,业务处理系统的部署方法可以如下:
[0142] 步骤701,终端向设备部署器发送部署设备请求。
[0143] 在实施中,技术人员如果想要在业务处理系统中部署主设备和备设备,可以打开终端中的系统管理应用程序,然后操作启动系统管理应用程序,从中选取要部署的设备,向设备部署器发送部署设备请求,并在其中携带要部署的设备的标识。
[0144] 另外,也可以不在部署设备请求中携带要部署的设备的标识,技术人员在设备部署器中预先存储了一个业务处理系统中包括的多个设备的标识,这样,部署设备请求只需要携带要部署的业务系统的标识。
[0145] 步骤702,设备部署器接收终端发送的部署设备请求,向控制设备发送主设备和备设备的分配请求。
[0146] 在实施中,设备部署器向控制设备发送主设备和备设备的分配请求,并在其中携带要部署的设备的标识。
[0147] 步骤703,控制设备确定主设备和备设备,向设备部署器发送主设备和备设备的创建命令。
[0148] 在实施中,控制设备接收到设备部署器发送的主设备和备设备的分配请求后,可以从要部署的设备中选取业务处理能力最强的设备,确定为主设备,其它设备为备设备。然后向设备部署器发送主设备和备设备的创建命令,并在创建命令中携带主设备的标识。
[0149] 步骤704,设备部署器接收控制设备发送的主设备和备设备的创建命令,向主设备和备设备发送拉起请求。
[0150] 在实施中,设备部署器接收到控制设备发送的主设备和备设备的创建命令后,可以基于其中携带的主设备的标识向主设备发送拉起请求,在该拉起请求中携带主设备的标记,以告知该设备为主设备,然后向其它设备发送拉起请求,在该拉起请求中携带备设备的标记,以告知其它设备为备设备。
[0151] 步骤705,主设备和备设备切换工作模式,分别向设备部署器发送切换完成通知。
[0152] 在实施中,主设备和备设备接收到设备部署器发送的拉起请求后,如果某个设备接收到的拉起请求中有主设备的标记,可以确定该设备为主设备,如果某个设备接收到的拉起请求中有备设备的标记,可以确定该设备为备设备。主设备可以将工作模式切换至主设备工作模式,并检测是否可以正常运行,如果切换至主设备工作模式后,可以正常运行,可以向设备部署器发送切换完成通知,备设备可以将工作模式切换至备设备工作模式,并检测是否可以正常运行,如果切换至备设备工作模式后,可以正常运行,可以向设备部署器发送切换完成通知。
[0153] 步骤706,设备部署器接收到主设备和备设备发送的切换完成通知时,向名字服务设备发送设备部署更新消息,并向控制设备发送设备状态更新消息。
[0154] 步骤707,名字服务设备接收部署设备发送的设备部署更新消息,对设备的部署消息进行更新。
[0155] 在实施中,名字服务设备接收部署设备发送的部署更新消息,部署更新消息中携带有主设备的IP地址、端口号等、主设备对应的多个备设备的IP地址、端口号。名字服务设备可以将部署更新信息中的IP地址和端口号进行对应存储,并将这些设备存储为一个设备组。
[0156] 步骤708,控制设备接收设备部署器发送的设备状态更新消息,向名字服务设备发送主设备和备设备的更新消息。
[0157] 在实施中,控制设备接收到设备部署器发送的设备状态更新消息后,可以向名字服务设备发送主设备和备设备的更新信息,并在其中携带主设备的标识,并对应有主设备标记,以及备设备的标识,名字服务接收到更新信息后,可以将有主设备标记的设备记录为主设备,并将备设备的标识对应的设备记录为备设备。
[0158] 步骤709,名字服务设备向业务引导设备发送主设备更新通知。
[0159] 在实施中,名字服务设备可以向业务引导设备发送主设备更新通知,并在其中携带主设备的标识和备设备的标识,并将主设备的标识标记为主设备,业务引导设备接收到名字服务设备发送的主设备更新通知后,可以解析主设备更新通知,并将被标记为主设备的标识对应的设备标记为主设备。
[0160] 这样,当业务引导设备接收到业务处理请求时,业务引导设备可以将业务处理请求转发至主设备,以使主设备进行处理。
[0161] 对于不存在控制设备的情况,主设备发生故障后,备设备可以自主重新选取主设备的实施例,如图8所示,业务处理系统的部署方法可以如下:
[0162] 步骤801,终端向设备部署器发送部署设备请求。
[0163] 步骤801与步骤701的处理过程相同,具体处理过程可参见步骤701,此处不再赘述。
[0164] 步骤802,设备部署器接收终端发送的部署设备请求,向多个设备发送拉起请求。
[0165] 在实施中,设备部署器接收到终端发送的部署设备请求后,可以向部署设备请求中携带的设备的标识对应的设备发送拉起请求。
[0166] 步骤803,多个设备中第一设备分别向其它设备发送投票选主消息,当第一设备接收到其它设备中超过一半的设备发送的同意选主消息时,第一设备将工作模式切换到主设备工作模式。
[0167] 其中,第一设备为多个设备中的任一设备。
[0168] 在实施中,第一设备接收到设备部署器发送的拉起请求后,可以向其它设备发送投票选主消息,其它设备接收到第一设备发送的投票选主消息后,如果第一设备发送的投票选主消息被其它设备最早接收到,其它设备会向第一设备发送同意选主消息,第一设备接收到其它设备中超过一半的设备发送的同意选主消息时,第一设备确定自己为主设备,并且将工作模式切换至主设备工作模式,然后第一设备向其它设备发送主设备通知消息。其它设备接收到主设备发送的通知消息,则确定第一设备为主设备,自己则为备设备。
[0169] 步骤804,当第一设备接收到其它设备发送的确认回复消息时,向设备部署器发送主设备更新消息。其它设备向主设备发送确认回复消息后,向设备部署器发送备设备更新消息。
[0170] 在实施中,第一设备接收到其它设备发送的确认回复消息时,可以向设备部署器发送设备更新消息,并且其它备设备向主设备发送确认回复消息后,可以向设备部署器发送备设备更新消息。
[0171] 步骤805,设备部署器向名字服务设备发送主设备更新请求。
[0172] 在实施中,设备部署器接收到主设备发送主设备更新消息,并接收到其它备设备分别发送的备设备更新消息时,设备部署器可以向名字服务设备发送主设备更新请求,并在主设备更新请求中携带主设备的标识和各备设备的标识。
[0173] 步骤806,名字服务设备进行主设备和备设备的更新。
[0174] 在实施中,名字服务设备接收到设备部署器发送的主设备更新请求后,可以将主设备的标识对应的设备标记为主设备,并将备设备的标识对应的设备标记为备设备。
[0175] 步骤807,名字服务设备向业务引导设备发送主设备更新通知。
[0176] 在实施中,名字服务设备可以向业务引导设备发送主设备更新通知,并在其中携带主设备的标识和备设备的标识,并将主设备的标识标记为主设备,业务引导设备接收到名字服务设备发送的主设备更新通知后,可以解析主设备更新通知,并将被标记为主设备的标识对应的设备标记为主设备。
[0177] 这样,当业务引导设备接收到业务处理请求时,业务引导设备可以将业务处理请求转发至主设备,以使主设备进行处理。
[0178] 本发明实施例,第一备设备接收主设备周期性发送的心跳检测消息,当连续N个周期未接收到主设备发送的心跳检测消息时,第一备设备向其它备设备发送第一故障询问消息,其中,N为预设数值,第一故障询问消息用于询问是否连续N个周期未接收到主设备发送的心跳检测消息,其它备设备为与主设备属于同一设备组的备设备中除第一备设备之外的备设备,当接收到其它备设备中有数目符合预设条件的备设备发送的第一故障确认消息时,第一备设备发起主设备重选,这样,是由多个备设备协商确定主设备是否出现故障,而不是由控制设备和故障检测代理确定主设备是否出现故障,从而可以提高确定主设备故障的准确率。
[0179] 图9是本发明实施例提供的设备故障恢复的装置的结构图。该装置可以通过软件、硬件或者两者的结合实现成为装置中的部分或者全部。本发明实施例提供的装置可以实现本发明实施例图4-图8所述的流程,该基站包括:接收模块910、发送模块920和发起模块930,其中:
[0180] 接收模块910,用于接收主设备周期性发送的心跳检测消息;
[0181] 发送模块920,用于当连续N个周期未接收到所述主设备发送的心跳检测消息时,向其它备设备发送第一故障询问消息,其中,N为预设数值,所述第一故障询问消息用于询问是否连续N个周期未接收到所述主设备发送的心跳检测消息,其中,所述其它备设备为与所述主设备属于同一设备组的备设备中除所述第一备设备之外的备设备;
[0182] 发起模块930,用于当接收到所述其它备设备中有数目符合预设条件的备设备发送的第一故障确认消息时,发起主设备重选。
[0183] 可选的,所述发起模块930,用于:
[0184] 当接收到所述其它备设备中有超过一半的备设备发送的第一故障确认消息时,所述第一备设备发起主设备重选。
[0185] 可选的,所述发起模块930,用于:
[0186] 向所述其它备设备发送投票选主消息,其中,所述投票选主消息用于询问是否将所述第一备设备选取为主设备;
[0187] 当接收到所述其它备设备中有数目符合预设条件的备设备发送的同意选主消息时,将工作模式切换到主设备工作模式。
[0188] 可选的,所述发起模块930,用于:
[0189] 如果连续M个周期未接收到控制设备发送的心跳检测消息,则向所述其它备设备发送第二故障询问消息,其中,M为预设数值,所述第二故障询问消息用于询问是否连续M个周期未接收到所述控制设备发送的心跳检测消息;
[0190] 当接收到所述其它备设备中有数目符合预设条件的备设备发送的第二故障确认消息时,向所述其它备设备发送投票选主消息。
[0191] 可选的,所述发起模块930,用于:
[0192] 向控制设备发送主设备重选请求;
[0193] 当接收到所述制设备发送的主设备指示消息时,将工作模式切换到主设备工作模式。
[0194] 可选的,所述发起模块930,用于:
[0195] 如果在当前时刻之前的预设时长内接收到所述控制设备发送的心跳检测消息,则向所述控制设备发送主设备重选请求。
[0196] 可选的,所述发起模块930,用于:
[0197] 向所述其它备设备发送投票咨询消息,其中,所述投票咨询消息用于询问是否将所述第一备设备选取为选主咨询代表;
[0198] 当接收到所述其它备设备中有数目符合预设条件的备设备发送的同意咨询消息时,向所述控制设备发送主设备重选请求。
[0199] 可选的,所述主设备重选请求中还携带有发送所述第一故障确认消息的备设备的标识。
[0200] 可选的,所述发送模块920,还用于:
[0201] 向所述控制设备发送设备更新消息,以使所述控制设备通知业务引导设备进行主设备更新。
[0202] 需要说明的是,上述接收模块910、发送模块920和发起模块930可以由处理器220实现,或者处理器220配合发射器230、接收器210和存储器240来实现。
[0203] 本发明实施例,第一备设备接收主设备周期性发送的心跳检测消息,当连续N个周期未接收到主设备发送的心跳检测消息时,第一备设备向其它备设备发送第一故障询问消息,其中,N为预设数值,第一故障询问消息用于询问是否连续N个周期未接收到主设备发送的心跳检测消息,其它备设备为与主设备属于同一设备组的备设备中除第一备设备之外的备设备,当接收到其它备设备中有数目符合预设条件的备设备发送的第一故障确认消息时,第一备设备发起主设备重选,这样,是由多个备设备协商确定主设备是否出现故障,而不是由控制设备和故障检测代理确定主设备是否出现故障,从而可以提高确定主设备故障的准确率。
[0204] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令,在设备故障恢复的装置上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴光缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是设备故障恢复的装置能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(如软盘、硬盘和磁带等),也可以是光介质(如数字视盘(Digital Video Disk,DVD)等),或者半导体介质(如固态硬盘等)。
[0205] 以上所述仅为本申请的一个实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。