一种业务进程恢复业务的方法、装置、设备及存储介质与流程

文档序号:32155614发布日期:2022-11-11 22:44阅读:41来源:国知局
一种业务进程恢复业务的方法、装置、设备及存储介质与流程

1.本技术涉及通信技术领域,尤其涉及一种业务进程恢复业务的方法、装置、设备及存储介质。


背景技术:

2.对于大部分网络设备来说,因为其系统实现的复杂性,一般不支持系统中一部分业务进程的重启,因此,当系统中某个或多个业务进程由于异常导致关闭的情况下,需要将整个系统重新启动,耗费较多的时间。
3.对于少部分支持系统中一部分业务进程重启的网络设备来说,在系统中某个或多个业务进程由于异常导致关闭的情况下,可以将该单个或多个业务进程重新启动,但是单个或多个业务进程重启过程中,由于没有与其他业务进程进行交互,导致这些业务进程的状态与其他业务进程的状态不一致,这就需要这些业务进程在重启完成后,与其他业务进程进行数据的平滑对账,以使这些业务进程的状态与其他业务进程的状态达到一致。但是数据平滑对账也需要消耗较多的时间。


技术实现要素:

4.本技术公开了一种业务进程恢复业务的方法、装置、设备及存储介质,使用本技术所述的方法,在一个或多个业务进程异常或者升级的情况,只需重启异常或升级的业务进程即可,且在重启过程中或重启完成后无需与其他业务进程进行数据平滑对账,节省业务进程恢复业务的时间,且操作方便。
5.第一方面,本技术提供了一种业务进程恢复业务的方法,应用于网络设备,包括:业务进程获取第一队列中的内容;所述第一队列中的内容包括所述业务进程恢复业务前所述第一队列接收到的内容;所述业务进程为所述网络设备包括的多个业务进程中的任意一个,所述第一队列为所述网络设备包括的多个队列中的至少一个队列,所述业务进程对应所述第一队列,所述多个队列均独立于所述多个业务进程;所述业务进程处理所述第一队列中的内容。
6.可以看到,本技术中,多个队列是独立于多个业务进程的,因此当某个或某些业务进程异常或升级时,多个队列是不受影响的,因此,在某个或某些业务进程异常或升级的情况下,可以只重启异常或升级的业务进程,在启动过程中和启动后无需与其他业务进程进行数据平滑对账;在业务进程重启后,业务进程直接获取第一队列中的内容,对第一队列中的内容进行处理,其中第一队列包括与业务进程对应的至少一个队列,第一队列中的内容包括业务进程恢复业务前第一队列接收到的内容。实施本技术的方法,操作便捷,节省业务进程恢复业务的时间。
7.基于第一方面,在可能的实现方式中,所述业务进程恢复业务前所述第一队列接收到的内容包括所述业务进程异常或关闭前所述第一队列中存储的内容和/或所述业务进程由异常或关闭至恢复业务过程中所述第一队列接收到的内容。
8.可以理解,业务进程恢复业务前第一队列接收到的内容可以包括业务进程由异常或关闭(关闭指的是业务进程升级的情况)至恢复业务过程中第一队列接收到的内容,还可以包括业务进程异常或关闭前第一队列中存储的内容,其中业务进程异常或关闭前第一队列中存储的内容也就是业务进程异常或关闭前未处理的内容。
9.基于第一方面,在可能的实现方式中,所述业务进程处理所述第一队列中的内容,包括:所述业务进程处理所述第一队列中的内容,获得第一处理结果;保存所述第一处理结果。
10.基于第一方面,在可能的实现方式中,所述第一队列包括至少一个消息队列和/或至少一个报文队列,所述第一队列中的内容包括所述至少一个消息队列中的消息和/或所述至少一个报文队列中的报文。
11.可以理解,第一队列可以包括与业务进程对应的一个或多个消息队列,或者,第一队列可以包括与业务进程对应的一个或多个报文队列,或者,第一队列中可以既包括与业务进程对应的一个或多个消息队列,又包括与业务进程对应的一个或多个报文队列。
12.基于第一方面,在可能的实现方式中,所述业务进程在异常或关闭前与恢复业务后,所述业务进程的身份标识不变。
13.可以看到,操作系统中的多个业务进程中的每个业务进程都具有身份标识,且不同业务进程的身份标识不同,在业务进程异常或关闭前与恢复业务后,业务进程的身份标识不变。将不同的业务进程标识不同的身份标识,以保证业务进程在异常或关闭前所处理的队列,与业务进程重启/恢复业务后所处理的是队列是相同的。
14.基于第一方面,在可能的实现方式中,所述多个队列包括多个消息队列或多个报文队列,或所述多个队列包括至少一个消息队列和至少一个报文队列。
15.可以理解,操作系统中的多个队列可以包括多个消息队列,或者可以包括多个报文队列,或者可以包括多个消息队列和多个报文队列。其中,每个消息队列具有身份标识,不同消息队列具有不同的身份标识,每个报文队列具有身份标识,不同报文队列具有不同的身份标识。通过为每个消息队列、每个报文队列、每个业务进程添加身份标识,以保证业务进程与消息队列或报文队列之间的对应处理关系,保证网络设备的正常运行。
16.基于第一方面,在可能的实现方式中,所述多个消息队列中的每个消息队列中的每个消息均标记了时间戳,所述时间戳表示消息的发送时刻;和/或,所述多个报文队列中的每个报文队列中的每个报文均标记了时间戳,所述时间戳表示报文的发送时刻;相应地,所述业务进程对所述第一队列中的内容进行处理,包括:所述业务进程根据所述至少一个消息队列中的各个消息的时间戳和/或所述至少一个报文队列中的各个报文的时间戳所指示的发送时刻的先后顺序,依次处理所述各个消息和/或所述各个报文。
17.可以理解,对于具有依赖关系的多个消息来说,比如此时刻消息1的处理依赖于前一时刻消息2的处理结果,本技术业务进程根据各个消息的发送时刻的先后顺序依次处理消息,使得消息被正确处理,获得准确的处理结果,避免了因消息处理不当或处理结果不正确导致进程异常的情况,从而保证了网络设备正常运行。
18.基于第一方面,在可能的实现方式中,在保存所述第一处理结果之后,所述方法还包括:删除所述第一处理结果对应的所述第一队列中的内容。
19.可以看到,只有在第一队列中的内容处理完毕且将处理结果保存后,才将对应的
内容从源端业务进程对应的队列中或目的端业务进程对应的队列中删除。这种方式能够保证业务进程在处理内容的过程中突然异常或关闭的情况下,该内容在目的端业务进程或源端业务进程中依然存在,不会造成该内容丢失,业务进程恢复业务后,还可以继续对该内容进行处理。
20.基于第一方面,在可能的实现方式中,所述第一队列中的内容包括事务;所述第一处理结果包括所述事务的处理结果;其中,所述事务包括多个连续消息,所述多个连续消息中的首个消息标记了事务开始标识,所述多个连续消息中的最后一个消息标记了事务结尾标识;相应地,在保存所述第一处理结果之后,所述方法还包括:删除所述事务。
21.可以理解,事务中的第一消息标记了事务开始标识,最后一个消息标记了事务结尾标识,以便业务进程根据事务开始标识和事务结尾标识确定构成事务的消息。在业务进程将事务处理完毕且将处理结果存储后,才将构成事务的所有消息删除,避免了业务进程在处理事务的过程中因异常或关闭而导致事务丢失的情况。
22.基于第一方面,在可能的实现方式中,在所述业务进程获取第一队列中的内容之前,所述方法还包括:监控所述多个业务进程;在监控到所述业务进程异常时,恢复所述业务进程的业务。
23.可以看到,通过对操作系统中的各个业务进程进行监控,从而获得各个业务进程的实时状态,当监控到某个业务进程异常时,可通过本技术的方法使得业务进程恢复业务,本技术操作方便,能够及时对业务进程的业务进行恢复,且所需时间短。
24.第二方面,本技术提供了一种业务进程恢复业务的装置,所述装置包括:获取单元,用于通过业务进程获取第一队列中的内容;所述第一队列中的内容包括所述业务进程恢复业务前所述第一队列接收到的内容;所述业务进程为所述网络设备包括的多个业务进程中的任意一个,所述第一队列为所述网络设备包括的多个队列中的至少一个队列,所述业务进程对应所述第一队列,所述多个队列均独立于所述多个业务进程;处理单元,用于通过所述业务进程处理所述第一队列中的内容。
25.基于第二方面,在可能的实现方式中,所述业务进程恢复业务前所述第一队列接收到的内容包括所述业务进程异常或关闭前所述第一队列中存储的内容和/或所述业务进程由异常或关闭至恢复业务过程中所述第一队列接收到的内容。
26.基于第二方面,在可能的实现方式中,所述处理单元用于,通过所述业务进程处理所述第一队列中的内容,获得第一处理结果;所述装置还包括存储单元,所述存储单元用于保存所述第一处理结果。
27.基于第二方面,在可能的实现方式中,所述第一队列包括至少一个消息队列和/或至少一个报文队列,所述第一队列中的内容包括所述至少一个消息队列中的消息和/或所述至少一个报文队列中的报文。
28.基于第二方面,在可能的实现方式中,所述业务进程在异常或关闭前与恢复业务后,所述业务进程的身份标识不变。
29.基于第二方面,在可能的实现方式中,所述多个队列包括多个消息队列或多个报文队列,或所述多个队列包括至少一个消息队列和至少一个报文队列。
30.基于第二方面,在可能的实现方式中,所述多个消息队列中的每个消息队列中的每个消息均标记了时间戳,所述时间戳表示消息的发送时刻;和/或,所述多个报文队列中
的每个报文队列中的每个报文均标记了时间戳,所述时间戳表示报文的发送时刻;所述处理单元用于:通过所述业务进程根据所述至少一个消息队列中的各个消息的时间戳和/或所述至少一个报文队列中的各个报文的时间戳所指示的发送时刻的先后顺序,依次处理所述各个消息和/或所述各个报文。
31.基于第二方面,在可能的实现方式中,所述装置还包括删除单元,所述删除单元用于,删除所述第一处理结果对应的所述第一队列中的内容。
32.基于第二方面,在可能的实现方式中,所述第一队列中的内容包括事务;所述第一处理结果包括所述事务的处理结果;其中,所述事务包括多个连续消息,所述多个连续消息中的首个消息标记了事务开始标识,所述多个连续消息中的最后一个消息标记了事务结尾标识;所述装置还包括删除单元,所述删除单元用于,删除所述事务。
33.基于第二方面,在可能的实现方式中,所述装置还包括监控单元,所述监控单元用于:监控所述多个业务进程;在监控到所述业务进程异常时,恢复所述业务进程的业务。
34.上述装置中的各个功能单元具体用于实现上述第一方面或第一方面的任一实现方式中所述的方法。
35.第三方面,本技术提供了一种业务进程恢复业务的设备,包括存储器和处理器,所述存储器用于存储有指令,所述处理器用于调用所述存储器中存储的所述指令执行上述第一方面或第一方面的任一实现方式所述的方法。
36.第四方面,本技术提供了一种计算机存储介质,包括程序指令,当所述程序指令在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一实现方式所述的方法。
37.第五方面,本技术提供了一种计算机程序产品,该计算机程序产品包括程序指令,当该计算机程序产品被业务进程恢复业务的设备执行时,该业务进程恢复业务的设备执行前述第一方面所述方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第一方面的任一种可能的设计提供的方法的情况下,可以下载该计算机程序产品并在业务进程恢复业务的设备上执行该计算机程序产品,以实现第一方面或第一方面的任一可能实现方式中所述的方法。
38.可以看到,本技术中,消息队列和报文队列是独立于业务进程的,在业务进程异常或关闭的情况才,消息队列中的消息和报文队列中的报文是不受影响的,因此当业务进程异常或关闭的情况下,只需重启异常或关闭的业务进程即可,且重启过程中或重启完毕后,业务进程无需与其他业务进程进行数据平滑对账,本技术所述的方法,业务进程恢复业务速度快、时间短、操作方便。
附图说明
39.为了更清楚地说明本技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
40.图1为本技术提供的一种传统的系统结构示意图;
41.图2为本技术提供的一种传统的消息传输方式示意图;
42.图3为本技术提供的一种新的系统结构示意图;
43.图4为本技术提供的一种新的消息传输方式示意图;
44.图5为本技术提供的一种场景示例图;
45.图6为本技术提供的又一种系统结构示意图;
46.图7为本技术提供的一种业务进程恢复业务的方法的流程示意图;
47.图8为本技术提供的一种业务进程恢复业务的装置示意图;
48.图9为本技术提供的一种网络设备的结构示意图;
49.图10为本技术提供的又一种网络设备的结构示意图。
具体实施方式
50.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
51.本说明书和权利要求书中的术语“第一”“第二”“第三”“第四”等用于区别不同的对象,而并非用于描述特定的顺序。
52.参见图1,图1为本技术提供的一种网络设备的系统结构示意图,其中网络设备可以是路由器、交换机、防火墙等中的任一个。
53.在网络设备处于工作状态时存在多个业务进程,例如,图1中的业务进程1、业务进程2、业务进程3、

业务进程n等。多个业务进程之间可以通过消息队列进行通信,其中消息队列中包括至少一个消息。每个业务进程还可以通过报文队列与协议栈进行通信,报文队列中包括至少一个报文。其中,协议栈用于接收外部的网络设备发送的报文,并将接收到的报文派发至相应业务进程的报文队列中,协议栈还用于将网络设备中各个业务进程的报文队列中的报文发送至外部的网络设备,外部的网络设备可以是路由器、交换机、防火墙等中的任一个。例如,业务进程1通过本业务进程中的消息队列与其他业务进程进行通信,业务进程1还通过本业务进程中的报文队列接收协议栈发送的报文,或者通过本业务进程中的报文队列向协议栈发送报文。
54.为了便于描述,图1中只列出了业务进程1中的报文队列,没有列出其它业务进程的报文队列。
55.在业务进程1由于异常导致关闭的情况下,则业务进程1中的消息队列和报文队列都会被删除,即消息队列中的消息和报文队列中的报文也被删除。其他业务进程感知到业务进程1已经关闭,停止向业务进程1的消息队列发送消息,协议栈停止向业务进程1中的报文队列发送报文。待业务进程1重启后,需要与其他业务进程重新建立通信通道,即重新建立消息队列和报文队列,然后与其他业务进程、协议栈进行数据的平滑对账,直到业务进程1的状态与其他业务进程的状态达到一致。
56.上述系统架构中,1)在某个业务进程由于异常突然关闭的情况,业务进程重启过程中,没有与其他业务进程进行交互,在业务进程重启完成后,需要与其他业务进程做全量数据的平滑对账,花费了较多的时间;2)业务进程间的通信仅仅保证了消息传输的可靠性,这有可能导致消息的丢失。例如,参见图2,图2为本技术提供的一种业务进程间通信的示意图。过程一:图2中,源端业务进程在将消息1发送至目的端业务进程后,源端业务进程会将消息1从本业务进程的消息队列中删除,此时若目的端业务进程突然异常关闭,则目的端业务进程中的消息队列也被删除,则源端业务进程的消息队列和目的端业务进程的消息队列中均不存在消息1,待目的端业务进程重启再对本业务进程中的消息队列中的消息进行处
理,也会“漏处理”消息1,也就导致消息1丢失。过程二:源端业务进程成功将消息1发送至目的端业务进程后,源端业务进程将消息队列中的消息1删除;目的端业务进程从本业务进程的消息队列中将消息1取走对消息1进行处理,若目的端业务进程在处理消息1的过程中突然异常关闭,则源端业务进程的消息队列和目的端业务进程的消息队列中均不存在消息1,待目的端业务进程重启后,也无法再次对消息1进行处理,导致消息1丢失。
57.对上述网络设备的系统结构进行改进,本技术提出一种新的系统结构,参见图3所示,图3为本技术提供的一种网络设备的新的系统结构的示意图,为了便于描述,图3中只列出了业务进程1对应的报文队列,没有列出其它业务进程所对应的报文队列。
58.下面对新的系统结构及各业务进程间的通信方式进行介绍。
59.而新的系统结构中,消息队列和报文队列是位于业务进程外部的(在原系统结构中,消息队列和报文队列是位于业务进程内部的),即图3中的各个消息队列和各个报文队列均是独立于各个业务进程的,因此,各消息队列和报文队列不受业务进程状态的影响,即使业务进程由于异常导致关闭,消息队列和报文队列也不会被删除。无论业务进程是处于关闭状态还是处于重启过程中,消息队列均可以接收到其他消息队列发送的消息,报文队列均可以接收到协议栈发送的报文。
60.所有业务进程均具有业务进程身份标识id,不同业务进程的业务进程id不同,业务进程id例如可以是一固定名称,保证业务进程关闭前的业务进程id和业务进程关闭后的业务进程id不变。
61.所有消息队列和报文队列全局统一管理,每个消息队列和每个报文队列都具有队列id且队列id不同(图3中未示出),根据队列id以对各个队列进行区分。在业务进程处于运行状态时,业务进程对该业务进程所对应的消息队列中的消息或报文队列中的报文进行处理,业务进程异常关闭再重启完成后,需要继续对关闭前所处理的消息队列中的消息或报文队列中的报文进行处理。例如,在业务进程关闭前,队列id为“消息队列1”中的消息是由业务进程id为“a应用程序所在业务进程”的业务进程进行处理的,那么业务进程重启后,队列id为“消息队列1”中的消息的依然是由业务进程id为“a应用程序所在业务进程”的业务进程处理。
62.当目的端业务进程将消息处理完且将处理结果存储至共享内存或高端内存或数据库后,源端业务进程才可将该消息从本业务进程所对应的消息队列中删除。例如,参见图4所示,图4为本技术提供的一种业务进程间通信示意图。源端业务进程将本业务进程所对应的消息队列中的消息1发送至目的端业务进程所对应的消息队列中,目的端业务进程从所对应的消息队列中取出消息1,对消息1进行处理,并将处理结果存储至图3所示的共享内存/高端内存/数据库中后,源端业务进程才将消息1从本业务进程所对应的消息队列中删除。即使目的端业务进程在接收消息1的过程中或处理消息1的过程中异常关闭,消息1在源端业务进程所对应的消息队列中仍然存在,源端业务进程会继续将消息1发送至目的端业务进程所对应的消息队列,待目的端业务进程重启后,继续处理目的端业务进程所对应的消息队列中的消息,因此,该方式保证了消息不会丢失。
63.可选的,也可以是,在源端业务进程将消息发送至目的端业务进程后,源端业务进程将该消息从消息队列中删除(保证消息传输的可靠性),但是当目的端业务进程从所对应的消息队列中取该消息时,要保证目的端业务进程所对应的消息队列中该消息不被删除,
相当于目的端业务进程只是“复制”了该消息,“复制”该消息之后,目的端业务进程所对应的消息队列中依然存在该消息,只有当目的端业务进程将该消息处理完毕,将处理结果存储至共享内存或高端内存或数据库后,目的端业务进程所对应的消息队列才将该消息删除。
64.可选的,可以将目的端业务进程对消息的处理过程和将对消息的处理结果存储至共享内存或高端内存或数据库作为一个事务。当目的端业务进程将该事务处理完成后,再处理下一个消息,如果该事务未处理完成,目的端业务进程由于异常导致关闭,则目的端业务进程重启后,会再次处理该事务。
65.其中,共享内存是业务进程间共享数据最快的一种的方法,某个业务进程向共享内存区域写入数据,共享这个内存区域的所有业务进程均可以看到共享内存区域的内容。高端内存指的是内核的一部分地址空间用来有选择的映射内存的任意部分,使内核部分能够使用整个内存。数据库是按照一定的规则来组织、存储和管理数据的仓库。共享内存或高端内存或数据库不受各个业务进程状态的影响。共享内存/高端内存/数据库用于存储各个业务进程对消息队列中的消息和报文队列中的报文的处理结果。
66.可选的,消息队列中还可以包括至少一个事务,其中一个事务中包括多个连续的消息,或者说,多个连续的消息构成一个事务。对于一个事务来说,当业务进程将事务中的所有消息均处理完毕,且将事务中所有消息的处理结果均存储至共享内存/高端内存/数据库中后,该事务才处理完毕。
67.可选的,构成事务的多个连续消息中的首个消息标记了事务开始标识,例如事务开始标识可以为事务身份标识id,构成事务的多个连续消息的最后一个消息中标记了事务结尾标识。当业务进程获取到第一个消息时,根据事务开始标识就知道该消息是一个事务中的第一个消息,当业务进程获取到最后一个消息时,根据事务结尾标识就知道该消息是这个事务中的最后一个消息。
68.例如,消息1、消息2、消息3构成一个事务,其中消息1、消息2和消息3是连续的,消息1中标识有事务id,消息3中有事务结尾标识。源端业务进程将本业务进程所对应的消息队列中的消息1、消息2和消息3发送至目的端业务进程的消息队列中;目的端业务进程获取到消息1,根据消息1中的事务id获知消息1是事务中的第一个消息,对消息1业务进程处理,将处理结果存储至共享内存/高端内存/数据库中;目的端业务进程获取到消息2,对消息2业务进程处理,将处理结果存储至共享内存/高端内存/数据库中;目的端业务进程获取到消息3,根据消息3中的事务结尾标识获知该消息是本事务中的最后一个消息,对消息3进行处理,将处理结果存储至共享内存/高端内存/数据库中,至此目的端业务进程对该事务处理完毕,目的端业务进程向源端业务进程反馈该事务处理完毕的消息,源端业务进程才将构成该事务的消息1、消息2和消息3删除。
69.可选的,系统中各个消息队列中的每个消息队列中的每个消息上标记有时间戳,时间戳表示该消息的发送时刻。目的端业务进程在对本业务进程所对应的消息队列中的多个消息进行处理时,可以根据各个消息上的时间戳所表示的时刻的先后顺序,依次对各个消息进行处理。也就是说,源端业务进程先发送的消息,目的端业务进程先处理,源端业务进程后发送的消息,目的端业务进程后处理。
70.可选的,系统中各个报文队列中的每个报文队列中的每个报文上标记有时间戳,
时间戳表示报文的发送时刻,目的端业务进程在对本业务进程所对应的报文队列中的多个报文进行处理时,可以根据各个报文上的时间戳所表示的时刻的先后顺序,依次对各个报文进行处理。可选的,目的端业务进程还可以根据各个消息上标记的时间戳以及各个报文上标记的时间戳的先后顺序,依次对消息或报文进行处理。
71.例如,参见图5所示,图5为本技术提供的一种场景示例图。图5中,业务进程4先将消息1发送至业务进程2,业务进程2对消息1进行处理后,将消息2发送至业务进程1;业务进程4又将消息3发送至业务进程3,业务进程3对消息3进行处理后,将消息4发送至业务进程1;但是业务进程1在接收消息2的过程中或处理消息2的过程中异常关闭了,待业务进程1重启完毕后,消息2和消息4均已经在业务进程1所对应的消息队列中了。在某种场景下,需要业务进程1先处理消息2,再根据消息2的处理结果处理消息4。如果消息上未标记时间戳,有可能业务进程1会先处理消息4再处理2,导致处理结果不准确。因此,为了保证能够获得正确的处理结果,可以在各个消息队列的各个消息上标记时间戳,这样当业务进程1关闭重启后,根据时间戳对各个消息进行处理,获得准确的处理结果。
72.可选的,本技术的系统结构中还可以包括监控装置,监控装置用于对系统中的各个业务进程进行监控。当监控装置监控到某个业务进程异常时,自动将该业务进程重新启动。还可以设置监控装置对同一个业务进程连续重启的阈值次数,比如,当监控装置将某个业务进程连续重启的次数达到阈值次数后,监控装置不再启动该业务进程。为了便于理解,本技术提供了又一种网络设备的系统结构示意图,参见图6所示。图6中,管理装置用于对独立于各个业务进程的消息队列进行管理,包括对各个消息队列分配空间资源和分配消息队列id等;监控装置用于对各个业务进程进行监控;共享内存/高端内存/数据库用于存储各个业务进程对消息队列中的消息的处理结果,等等。图6仅仅是本技术提供的一个示例,并不构成对本技术的限定。
73.可选的,本技术的系统结构还可以用于单个或多个业务进程的升级。在某个或某些业务进程升级场景中,一般是用户将某个或某些业务进程关闭,再重新启动,重启后的业务进程可以采用上述描述的业务进程间的通信方法进行通信,从而实现业务进程恢复业务。可选的,业务进程还可以通过其他方式与其他业务进程或外部设备进行通信,例如,业务进程可以通过发布订阅机制与其他业务进程或外部设备间接进行通信,比如,业务进程1订阅了与自身业务进程相关的消息,共享内存/高端内存/数据库会将与业务进程1相关的处理结果发布在指定的消息队列中,业务进程1可直接读取指定的消息队列中的消息获知与自身业务进程相关的信息等。
74.基于上述网络设备的新的系统结构,本技术提供了一种业务进程恢复业务的方法,参见图7所示,图7为本技术提供的一种业务进程恢复业务的方法的流程示意图,方法可以应用于嵌入式设备,例如路由器、交换机、防火墙等,也可以应用于服务器上的虚拟网络功能(virtual network functions,vnf)产品,还可以应用于计算机、笔记本、ipad等电子设备,该方法包括但不限于以下内容的描述。
75.s101、业务进程获取第一队列中的内容。
76.第一队列包括与业务进程对应的至少一个消息队列和/或至少一个报文队列,第一队列中的内容包括与业务进程对应的至少一个消息队列中的消息和/或至少一个报文队列中的报文。
77.消息队列中的消息包括业务进程异常或关闭前消息队列中存储的消息和由业务进程异常或关闭至业务进程恢复业务过程中消息队列接收到的消息,其中,业务进程异常或关闭前消息队列中存储的消息也就是业务进程异常或关闭时未处理完的消息,由业务进程关闭至业务进程恢复业务过程中消息队列接收到的消息包括业务进程异常或关闭期间消息队列接收到的消息和业务进程启动期间/恢复业务期间消息队列接收到的消息。
78.报文队列中的报文包括业务进程异常或关闭前报文队列中存储的报文和由业务进程异常或关闭至业务进程恢复业务过程中报文队列接收到的报文,其中,业务进程异常或关闭前报文队列中存储的报文也就是业务进程异常或关闭时未处理完的报文,由业务进程异常或关闭至业务进程恢复业务过程中报文队列接收到的报文包括业务进程异常或关闭期间报文队列接收到的报文和业务进程启动期间/恢复业务期间报文队列接收到的报文。
79.s102、业务进程处理第一队列中的内容。
80.业务进程对第一队列中的内容进行处理,获得第一处理结果。其中,第一处理结果包括业务进程对消息队列中各个消息的处理结果和/或业务进程对报文队列中各个报文的处理结果。
81.业务进程恢复业务后,业务进程对消息队列中的各个消息和/或报文队列中的各个报文进行处理,获得第一处理结果。可选的,业务进程对消息队列中的各个消息和/或报文队列中的各个报文进行处理,获得第一处理结果,还可以包括:业务进程读取共享内存/高端内存/数据库中的第二处理结果,根据第二处理结果对消息队列中的各个消息和报文队列中的各个报文进行处理,获得第一处理结果。其中,第二处理结果包括与第一队列中的内容具有依赖关系的消息的处理结果。也就是说,业务进程对第一队列中的内容或报文进行处理时,可能需要依赖前面消息或前面报文的处理结果。例如,图6中,业务进程1处理消息4时,需要根据消息2的处理结果对消息4进行处理。
82.关于业务进程对消息队列中的消息和/或报文队列中的报文的处理方式、保存处理结果的方式等相关内容,可参见上述图3至图6中的描述,为了说明书的简洁,在此不再赘述。
83.可选的,业务进程可以是对消息一一进行处理,例如,对一个消息处理完毕后,会及时将该消息的处理结果存储至共享内存/高端内存/数据库,业务进程再去处理下一个消息,再将下一个消息的处理结果存储至共享内存/高端内存/数据库中,再处理另外一个消息

。业务进程也可以是对消息进行批量处理,将批量消息的处理结果存储至共享内存/高端内存/数据库中,再去处理下一批消息


84.高端内存是操作系统中特定的内层空间,只要在操作系统不崩溃的情况下,高端内存中的数据就会一直存在,因此高端内存是不受业务进程的影响的。共享内存是业务进程间共享数据最快的一种方法,将消息的处理结果保存至共享内存中,便于业务进程快速读取数据。数据库是以特定格式存储数据的,将消息的处理结果保存至数据库中,便于数据的存储、管理,且操作方便,易于业务进程读取数据。总言之,高端内存或共享内存或数据库均是位于各个业务进程之外的,将消息的处理结果保存至高端内存或共享内存或数据库中,在业务进程异常或关闭的情况下,高端内存或共享内存或数据库中的数据是不受影响的。在业务进程重启后,便于业务进程从高端内存或共享内存或数据库中读取数据。
85.本技术的方法也适用于一个或多个业务进程的升级,业务进程的升级一般是人工操作关闭业务进程,然后重启,重启后的业务进程可以采用本方案描述的方法恢复业务。
86.本技术提供了一种业务进程恢复业务的方法,该方法应用于网络设备,在网络设备的操作系统中,各个消息队列和各个报文队列位于各个业务进程外,因此,当业务进程发生异常或关闭(升级)的情况下,各个消息队列和各个报文队列不受业务进程的影响,各个消息队列中的消息和各个报文中的报文不会被删除。因此,当业务进程发生异常或关闭(升级)的情况下,可以只启动发生异常或关闭的业务进程,无需重启整个操作系统;在业务进程重启期间或重启后,无需与其他业务进程进行数据平滑对账;本技术方法操作简单,且业务进程恢复业务快、消耗时间少。
87.参见图8,图8是本技术实施例提供的一种业务进程恢复业务的装置800的结构示意图,装置800包括:获取单元801,用于通过业务进程获取第一队列中的内容,其中,第一队列中的内容包括业务进程恢复业务前第一队列接收到的内容,所述业务进程为所述网络设备包括的多个业务进程中的任意一个,所述第一队列为所述网络设备包括的多个队列中的至少一个队列,所述业务进程对应所述第一队列,所述多个队列均独立于所述多个业务进程,具体可用于执行图7中的步骤s101;处理单元802,用于通过业务进程处理第一队列中的内容,具体的,可根据第一队列中的各个消息的时间戳的先后顺序依次处理各个消息,具体处理方式可参考图7中的步骤s102;存储单元803,用于将消息的处理结果存储至高端内存或共享内存或数据库中;删除单元804,用于在消息/事务处理完毕且将消息/事务的处理结果存储至高端内存或共享内存或数据库后,将消息/事务从对应的消息队列中删除;监控单元805,用于监控操作系统中的各个业务进程,在监控到某个或某些业务进程异常的情况下,恢复此业务进程的业务。
88.业务进程恢复业务的装置800对应于上述方法实施例中的网络设备,业务进程恢复业务的装置800中的各单元用于实现方法实施例中的网络设备所实施的各种步骤和方法,具体细节可参见上述方法的描述,为了说明书的简洁,在此不再赘述。
89.业务进程恢复业务的装置800在恢复业务进程的业务时,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要,将上述功能分配给不同的功能单元完成,即可以将业务进程恢复业务的装置800的内部结构划分成不同的功能单元,以实现方法实施例中描述的全部功能或者部分功能。
90.与本技术提供的方法实施例以及虚拟装置实施例相对应,本技术还提供了一种业务进程恢复业务的设备,业务进程恢复业务的设备可以为下述的网络设备900或网络设备1000,下面对网络设备的硬件结构进行介绍。
91.下面描述中,网络设备900或网络设备1000均可以对应于上述虚拟装置实施例中的业务进程恢复业务的装置800。网络设备900或网络设备1000中的各硬件、模块和上述其他操作和/或功能分别为了实现业务进程恢复业务的装置800所实施的各种步骤和方法,关于网络设备900或网络设备1000如何实现业务进程恢复业务等详细流程,具体细节可参见上述方法实施例,为了说明书的简洁,在此不再赘述。
92.其中,上文图7的各步骤通过网络设备900或网络设备1000的处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本技术实施例所公开的方法和步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块(软件单元)组合执行完成。
软件模块可以位于随机存储器、闪存只读存储器、可编程只读存储器、电可擦写可编程存储器和寄存器等本领域成熟的一种或多种存储介质中。存储介质位于存储器中,处理器读取存储器中的信息,结合硬件执行上述方法中的步骤。为了说明书的简洁,这里不再详细描述。
93.业务进程恢复业务的装置800中的每个功能单元通过网络设备900或网络设备1000中的软件实现。换句话说,业务进程恢复业务的装置800中包括的功能单元是网络设备900或网络设备1000中的处理器读取存储器中存储的程序代码后生成的。
94.参见图9,图9示出了本技术提供的一种网络设备900的结构示意图,网络设备900可以由一般性的总线体系结构来实现。
95.网络设备900包括至少一个处理器901、通信总线902、存储器903以及至少一个通信接口904。
96.处理器901可以是一个通用cpu、np、微处理器,或者也可以是一个或多个用于实现本技术方案的集成电路。例如,专用集成电路(application-specific integrated circuit,asic)、可编程逻辑器件(programmable logic device,pld)或其组合。其中,pld可以是复杂可编程逻辑器件(complex programmable logic device,cpld)、现场可编程逻辑门阵列(field-programmable gate array,fpga)、通用阵列逻辑(generic array logic,gal)或其任意组合。
97.通信总线902用于在各个组件之间传送信息。通信总线902可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
98.存储器903可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其它类型的静态存储设备,也可以是随机存取存储器(random access memory,ram)或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,也可以是能够用于携带或存储具有指令或数据结构形式的程序代码且能够由计算机存取的任何其它介质,但不限于此。存储器903可以是独立存在,并通过通信总线902与处理器901相连接;存储器903也可以和处理器901集成在一起。
99.通信接口904用于与其它设备或通信网络进行通信。通信接口904可以包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口,以太网接口可以是光接口、电接口或其组合。无线通信接口可以为无线局域网(wireless local area networks,wlan)接口、蜂窝网络通信接口或其组合等。
100.在具体实现中,作为一种实施例,处理器901可以包括一个或多个cpu,例如,图9中所示的cpu0和cpu1。
101.在具体实现中,作为一种实施例,网络设备900可以包括多个处理器,如图9中所示的处理器901和处理器905。这些处理器中的每一个可以是一个单核处理器(single-cpu),也可以是一个多核处理器(multi-cpu)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
102.在一些实施例中,存储器903用于存储本技术方案的程序代码910,处理器901用于执行存储器903中存储的程序代码910。也即是,网络设备900可以通过处理器901以及存储器903中的程序代码910,来实现图7方法实施例提供的方法。
103.本技术实施例的网络设备900可对应于上述各个方法实施例中的网络设备,并且该网络设备900中的处理器901、通信接口904等可以实现上述各个方法实施例中的设备所具有的功能和/或所实施的各种步骤和方法。为了简洁,在此不再赘述。
104.业务进程恢复业务的装置800中,获取单元801可以位于网络设备900中的通信接口904中;处理单元802、删除单元804和监控单元805可以位于网络设备900中的处理器901或处理器905中,存储单元803可以位于网络设备900中的存储器903中。
105.参见图10,图10为本技术提供的另一种网络设备1000的结构示意图,网络设备1000包括:主控板1010和接口板1030。
106.主控板1010也称为主处理单元(main processing unit,mpu)或路由处理卡(route processor card),主控板1010用于对网络设备1000中各个组件的控制和管理,包括路由计算、设备管理、设备维护、协议处理功能。主控板1010包括:中央处理器1011和存储器1012。
107.接口板1030称为线路接口单元卡(line processing unit,lpu)、线卡(line card)或业务板。接口板1030用于提供各种业务接口并实现数据包的转发。业务接口包括但不限于以太网接口、pos(packet over sonet/sdh)接口等,以太网接口例如是灵活以太网业务接口(flexible ethernet clients,flexe clients)。接口板1030包括:中央处理器1031、网络处理器1032、转发表项存储器1034和物理接口卡(physical interface card,pic)1033。
108.接口板1030上的中央处理器1031,用于对接口板1030进行控制管理并与主控板1010上的中央处理器1011进行通信。
109.网络处理器1032用于实现报文的转发处理,网络处理器1032的形态可以是转发芯片。具体而言,网络处理器1032用于基于转发表项存储器1034保存的转发表转发接收到的报文,如果报文的目的地址为网络设备1000的地址,则将该报文上送至cpu(如中央处理器1011)处理;如果报文的目的地址不是网络设备1000的地址,则根据该目的地址从转发表中查找到该目的地址对应的下一跳和出接口,将该报文转发到该目的地址对应的出接口。其中,上行报文的处理包括:报文入接口的处理,转发表查找;下行报文的处理:转发表查找等等。
110.物理接口卡1033用于实现物理层的对接功能,原始的流量由此进入接口板1030,以及处理后的报文从该物理接口卡1033发出。物理接口卡1033也称为子卡,可安装在接口板1030上,负责将光电信号转换为报文并对报文进行合法性检查后转发给网络处理器1032处理。在一些实施例中,中央处理器也可执行网络处理器1032的功能,比如基于通用cpu实现软件转发,从而物理接口卡1033中不需要网络处理器1032。
111.可选地,网络设备1000包括多个接口板,例如,网络设备1000还包括接口板1040,其中,接口板1040包括:中央处理器1041、网络处理器1042、转发表项存储器1044和物理接口卡1043。
112.可选地,网络设备1000还包括交换网板1020,交换网板1020也可以称为交换网板
machine,vm),虚拟机部署在硬件设备上(例如,物理服务器)。虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,可以将虚拟机配置为网络设备。例如,可以基于通用的物理服务器结合网络功能虚拟化(network functions virtualization,nfv)技术来实现网络设备。网络设备为虚拟主机、虚拟路由器或虚拟交换机。本领域技术人员通过阅读本技术即可结合nfv技术在通用物理服务器上虚拟出具有上述功能的网络设备,此处不再赘述。
121.虚拟化设备可以是容器,容器是一种用于提供隔离的虚拟化环境的实体。例如,容器可以是docker容器,可以将容器配置为网络设备。比如,可以通过对应的镜像来创建出网络设备,例如可以通过提供代理服务的容器proxy-container的镜像,为proxy-container创建容器实例proxy-container1,将容器实例proxy-container1提供为网络设备。采用容器技术实现时,网络设备可以利用物理机的内核运行,多个网络设备可以共享物理机的操作系统,通过容器技术可以将不同的网络设备隔离开来。容器化的网络设备可以在虚拟化的环境中运行,例如可以在虚拟机中运行,容器化的网络设备也可以直接在物理机中运行。
122.例如,虚拟化设备可以是pod,pod是kubernetes(kubernetes是谷歌开源的一种容器编排引擎,简称为k8s)为部署、管理、编排容器化应用的基本单位,pod可以包括一个或多个容器。同一个pod中的每个容器通常部署在同一主机上,因此同一个pod中的每个容器可以通过该主机进行通信,并且可以共享该主机的存储资源和网络资源。可以将pod配置为网络设备,例如,具体地,可以指令容器即服务(container as a service,caas,是一种基于容器的paas服务)来创建pod,将pod提供为网络设备。
123.当然,网络设备还可以是其他虚拟化设备,在此不做一一列举。
124.在一些可能的实施例中,上述网络设备也可以由通用处理器来实现。例如,该通用处理器的形态可以是一种芯片。具体地,实现网络设备的通用处理器包括处理电路和与该处理电路内部连接通信的输入接口以及输出接口,该处理电路用于通过输入接口执行上述各个方法实施例中的报文的生成步骤,该处理电路用于通过输入接口执行上述各个方法实施例中的接收步骤,该处理电路用于通过输出接口执行上述各个方法实施例中的发送步骤。可选地,该通用处理器还可以包括存储介质,该处理电路用于通过存储介质执行上述各个方法实施例中的存储步骤。存储介质可以存储处理电路执行的指令,该处理电路用于执行存储介质存储的指令以执行上述各个方法实施例。
125.本技术实施例提供了一种计算机程序产品,当该计算机程序产品在业务进程恢复业务的设备上运行时,使得业务进程恢复业务的设备执行上述图7所述的方法实施例。
126.上述各种产品形态的装置,分别具有上述方法实施例中网络设备的任意功能,此处不再赘述。
127.本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
128.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系
统、装置和单元的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
129.在本技术所提供的几个实施例中,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
130.该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本技术实施例方案的目的。
131.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
132.该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例中方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
133.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本技术实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机程序指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,dvd)、或者半导体介质(例如固态硬盘)等。
134.以上描述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1