具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例公开一种系统异常保护的方法,应用在包括第一执行单元和第二执行单元的系统中,第一执行单元和第二执行单元可以是软件模块或多个软件模块的集合,比如可以是操作系统,或者应用软件,或者进程等,第一执行单元包括至少两个业务单元,第二执行单元包括与第一执行单元中相对应的业务单元,比如第一执行单元与第二执行单元包括的业务单元数目相同,且相对应的业务单元执行的功能也分别相同,如图1所示,该方法可以包括:
步骤S102.第二执行单元中的业务单元侦测来自第一执行单元中相对应的业务单元的心跳信息;
步骤S104.当在预定时间内,第二执行单元中的至少一个业务单元没有接收到来自第一执行单元中相对应的业务单元的心跳信息时,第二执行单元装载第一执行单元的业务数据信息和执行状态信息,执行第一执行单元的业务。
在本实施例中,可以预先定义第一工作模式和第二工作模式,第一执行单元可以工作在第一工作模式下,所述第二执行单元可以工作在第二工作模式下,第二执行单元运行第一执行单元的业务之前还包括:所述第二执行单元从第一工作模式切换到第二工作模式下。
在本步骤中,第二执行单元装载的业务数据信息和执行状态信息可以是第一执行单元当前执行的业务数据信息和执行状态信息的镜像数据,该镜像数据可以是由第一执行单元或第二执行单元通过实时收集第一执行单元的业务数据信息和执行状态信息,比如软件执行上下文信息等,并镜像保存而获得;上述的业务数据信息譬如可以是为用户提供搜索业务的内容数据,执行状态信息譬如可以是向用户传输数据的速率等信息。当在预定时间内,第二执行单元中的至少一个业务单元没有接收到来自第一执行单元中相对应的业务单元的心跳信息时,还可以确定所述第一执行单元出现故障且需要将业务切换到所述第二执行单元执行;在预定时间内,第二执行单元中的至少一个业务单元没有接收到来自所述第一执行单元中相对应的业务单元的心跳信息之后还可以包括:指示第一执行单元停止执行业务。
在第二执行单元装载第一执行单元当前执行的业务数据信息和执行状态信息,执行第一执行单元的业务之后,还可以包括:重新启动第一执行单元,由第一执行单元中的业务单元侦测来自正在执行业务的第二执行单元中相对应的业务单元的心跳信息,继续进行下一轮的系统异常保护的监控。
本发明实施例方法可以根据实际需要对各个步骤顺序进行调整。应用本发明实施例方法的计算机程序可以运行在包括Windows或Linux等各种操作系统上。
本实施例提供的实现系统异常保护的方法,通过第二执行单元中的业务单元侦测来自所述第一执行单元中相对应的业务单元的心跳信息,当在预定时间内,第二执行单元中的至少一个业务单元没有接收到来自第一执行单元中相对应的业务单元的心跳信息时,第二执行单元装载第一执行单元当前执行的业务数据信息和执行状态信息,执行第一执行单元的业务,可以以较低的复杂度和成本实现系统异常保护。
实施例二
本发明实施例基于实施例一,进行更加详细具体的说明。在本发明实施例中,以软件方式实现为例进行说明。
可以将一个软件系统分为两个部分——主执行体(Master)和从执行体(Slave)(即实施例一所描述的“第一执行单元”和“第二执行单元”)。其中,主执行体和从执行体可以是软件模块或多个软件模块的集合,比如可以是操作系统,或者应用软件,或者包括多个线程的进程等。主执行体是整个软件的主要执行部分,它负责软件的业务功能,主执行体包括若干个业务单元;从执行体作为主执行体的一个虚拟化实体,其主要功能可以是监控主执行实体的工作状态并实时收集主执行实体上的业务数据信息,从执行体可以包括与主执行体相同数目的业务单元,每个业务单元的功能与主执行体的业务单元相对应。
在本发明实施例中,主执行体和从执行体可以分别工作在两种不同的模式下即主模式和从模式。在主模式下,主执行体的主要功能是对外提供业务功能;在从模式下,从执行体的主要功能是监控主执行体的工作状态。同时,主执行体、或从模式、或其他系统模块可以实时收集主执行体上的业务数据信息,比如软件执行上下文信息等,包括动态执行信息和静态执行信息,并镜像保存。上述的业务数据信息譬如可以是为用户提供搜索业务的内容数据,执行状态信息譬如可以是向用户传输数据的速率等信息。当主执行体出现异常,从执行体装载当前的主执行体的执行状态信息和业务数据信息。这样就可以确保当前用户执行的过程不被打断。比如用户正在下载一个文件,当主执行异常时已经下载了60%,当从执行体切换业务之后,用户还可以从60%的进度进行执行而不需要重新进行下载。
本发明实施例的方法可以包括:
步骤S202.从执行体的业务单元侦测来自主执行体中相对应的业务单元的心跳信息;如果在预定的时间内,从执行体中的至少一个业务单元没有收到来自主执行体中相对应的业务单元的心跳消息,则执行S204;
步骤S204.确定主执行体目前已经发生故障,需要进行业务切换;
主执行体发生的故障可能是系统崩溃等异常。
步骤S206.从执行体切换到主工作模式,接管并执行当前出现故障的主执行体执行的业务,具体可以包括:
从执行体装载主执行体当前执行的业务数据信息和执行状态信息,从执行体的各个业务单元执行主执行体的相对应的各个业务单元的业务,为用户提供不间断的业务支持,从而保证当前用户的业务不受影响。
步骤S208.重新启动之前发生故障的主执行体,并设置其工作模式为从模式,开始新一轮系统异常保护的监控。
本发明实施例方法可以根据实际需要对各个步骤顺序进行调整。
举个例子,比如当前系统主要运行在虚拟机A中,当虚拟机B侦测到虚拟机A至少一个业务单元的心跳中断时,则确定虚拟机A出现故障,将系统切换到虚拟机B上运行。
举个例子,譬如在操作系统上运行了一个软件用于对外提供业务,软件的主执行体是进程A,从执行体是进程B。在软件的执行过程中,进程A负责对用户提供业务,进程B负责对于进程A进行监视。同时,进程A、或进程B或其他系统模块还可以将当前运行的整个进程上下文环境(包括用户数据)不断地镜像到一块内存中去。
如果进程A中负责处理用户文件下载的线程出现故障,进程B中的相应线程在预定时间内没有收到心跳信息,则进程B加载进程A执行的业务数据信息和执行状态信息的镜像数据,并切换工作模式,切换后进程B负责对外提供业务,而进程A则负责监控进程B的工作状态是否发生异常。如此循环反复,从而实现系统的异常保护。
本发明实施例方法可以根据实际需要对各个步骤顺序进行调整。应用本发明实施例方法的计算机程序可以运行在包括Windows或Linux等各种操作系统上。
本发明实施例提供的实现系统异常保护的方法,通过从执行体中的业务单元侦测来自主执行体中相对应的业务单元的心跳信息,当在预定时间内,从执行体中的至少一个业务单元没有接收到来自主执行体中相对应的业务单元的心跳信息时,从执行体装载主执行体当前执行的业务数据信息和执行状态信息,执行主执行体的业务,可以以较低的复杂度和成本实现系统异常保护,进一步地,基于业务单元的细粒度侦测,可以防止主执行体的假死状态,及时地保护出现故障的系统。
实施例三
本发明实施例公开一种网络设备,如图3所示,该网络设备包括第一执行单元和第二执行单元,第一执行单元包括至少两个业务单元,第二执行单元包括与第一执行单元中相对应的业务单元,第一执行单元和第二执行单元分别可以是软件模块或多个软件模块的集合,比如可以是操作系统,或者应用软件,或者包括多个线程的进程等。其中:
第一执行单元302中的业务单元,用于执行业务;向第二执行单元304中相对应的业务单元发送心跳信息;
第二执行单元304中的业务单元,用于侦测来自第一执行单元302中相对应的业务单元的心跳信息;当在预定时间内没有接收到来自第一执行单元302中相对应的业务单元的心跳信息时,触发第二执行单元装载第一执行单元302当前执行的业务数据信息和执行状态信息,执行第一执行单元302的业务。
第一执行单元302和第二执行单元304可以以软件方式实现。
可选地,如图4所示,本发明实施例的网络设备还可以包括:
确定单元402,用于当在预定时间内,第二执行单元中的至少一个业务单元没有接收到来自第一执行单元302中相对应的业务单元的心跳信息时,确定第一执行单元302出现故障且需要将业务切换到第二执行单元304执行。
可选地,在本实施例中,可以预先定义第一工作模式和第二工作模式,第一执行单元302可以工作在第一工作模式下,第二执行单元304可以工作在第二工作模式下,如图5所示,本发明实施例的网络设备还可以包括:
切换单元502,用于在第二执行单元304运行第一执行单元302的业务之前,将第二执行单元304从第一工作模式切换到第二工作模式。
可选地,如图6所示,本发明实施例的网络设备还可以包括:
指示单元602,用于当第二执行单元304中的至少一个业务单元在预定时间内没有接收到来自第一执行单元302中相对应的业务单元的心跳信息之后,指示第一执行单元302停止执行业务。
重新启动单元604,用于在指示单元602指示第一执行单元停止执行业务之后,重新启动第一执行单元,由第一执行单元中的业务单元侦测来自正在执行业务的第二执行单元中相对应的业务单元的心跳信息,继续进行系统异常保护的监控。
本发明实施例的各个单元可以集成于一体,也可以分离部署。上述单元可以合并为一个单元,也可以进一步拆分成多个子单元。
本发明实施例提供的网络设备可以是:计算机、服务器、交换机、路由器、基站、存储设备、网关、终端等。
本发明实施例提供的网络设备,通过第二执行单元侦测来自第一执行单元的心跳信息,当在预定时间内没有接收到来自第一执行单元的心跳信息时,第二执行单元装载第一执行单元当前执行的业务数据信息和执行状态信息,执行第一执行单元的业务,可以以较低的复杂度和成本实现系统异常保护;,进一步地,基于业务单元的细粒度侦测,可以防止主执行体的假死状态,及时地保护出现故障的系统。
实施例四
本发明实施例提供一种网络系统,如图7所示,该网络系统可以包括:计算机701、路由器702、服务器703和存储设备704。在图7所示的网络系统中,计算机701、路由器702、服务器703和存储设备704中的任意一种电子设备可以包括:第一执行单元和第二执行单元。其中各个单元的作用与实施例二类似,此处不再重复描述。
本领域技术人员可在图7所示的网络系统中增设交换机、基站等其它电子设备,并且增设的任意一种的电子设备可以包括第一执行单元和第二执行单元。等。
本发明实施例系统的各个单元可以集成于一个装置,也可以分布于多个装置。上述单元可以合并为一个单元,也可以进一步拆分成多个子单元。
结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或任意其它形式的存储介质中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。