CN113626240A - 集群故障恢复方法、装置、计算机设备和存储介质 - Google Patents
集群故障恢复方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113626240A CN113626240A CN202110914006.XA CN202110914006A CN113626240A CN 113626240 A CN113626240 A CN 113626240A CN 202110914006 A CN202110914006 A CN 202110914006A CN 113626240 A CN113626240 A CN 113626240A
- Authority
- CN
- China
- Prior art keywords
- application server
- message
- target application
- target
- service processing
- 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 49
- 238000011084 recovery Methods 0.000 title claims abstract description 30
- 238000012545 processing Methods 0.000 claims abstract description 118
- 230000002688 persistence Effects 0.000 claims abstract description 92
- 238000004590 computer program Methods 0.000 claims description 21
- 238000001914 filtration Methods 0.000 claims description 6
- 230000002085 persistent effect Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000012958 reprocessing Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Retry When Errors Occur (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种集群故障恢复方法、装置、计算机设备和存储介质。所述方法包括:当集群中所有应用服务器中的目标应用程序故障时,确定各应用服务器消息持久化文件中所存储历史消息的数量;将存储历史消息数量最多的应用服务器确定为目标应用服务器;通过目标应用服务器从目标应用服务器的消息持久化文件中读取目标历史消息;通过目标应用服务器中的目标应用程序,在内存中对目标历史消息进行业务处理,以恢复目标应用服务器的内存状态数据。采用本方法能够可靠地恢复集群故障前最终的内存状态数据。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种集群故障恢复方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,出现了集群技术,集群技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益。集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一***的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。当集群中所有应用服务器中的目标应用程序故障时,现有技术无法可靠地恢复故障前集群最终内存状态数据。
发明内容
基于此,有必要针对上述技术问题,提供一种能够可靠地恢复故障前集群最终内存状态数据的集群故障恢复方法、装置、计算机设备和存储介质。
一种集群故障恢复方法,所述方法包括:
当所述集群中所有应用服务器中的目标应用程序故障时,确定各应用服务器消息持久化文件中所存储历史消息的数量;
将存储历史消息数量最多的应用服务器确定为目标应用服务器;
通过所述目标应用服务器从所述目标应用服务器的消息持久化文件中读取目标历史消息;
通过所述目标应用服务器中的目标应用程序,在内存中对所述目标历史消息进行业务处理,以恢复所述目标应用服务器的内存状态数据。
在其中一个实施例中,所述方法还包括:
当所述目标应用服务器的内存状态数据全部恢复完成时,从网络上获取新消息;
将所述新消息存储至所述目标应用服务器的消息持久化文件中,以及通过所述目标应用服务器中的目标应用程序,基于所述内存状态数据对所述新消息进行业务处理,得到所述新消息对应的业务处理结果。
在其中一个实施例中,所述通过所述目标应用服务器中的目标应用程序,基于所述内存状态数据对所述新消息进行业务处理,得到所述新消息对应的业务处理结果之后,所述方法还包括:
将所述新消息对应的业务处理结果存储至所述目标应用服务器的结果持久化文件中。
在其中一个实施例中,所述目标历史消息是所述目标应用服务器的消息持久化文件中的所有历史消息,或,所述目标应用服务器的消息持久化文件中预先设置的配置参数所指定的部分历史消息。
在其中一个实施例中,所述通过所述目标应用服务器中的目标应用程序,在内存中对所述目标历史消息进行业务处理之后,所述方法还包括:
获取所述目标历史消息对应的业务处理结果;
将所有所述目标历史消息对应的业务处理结果发送至网络,或,对所述目标历史消息对应的业务处理结果进行过滤处理,并将过滤后的所述目标历史消息对应的业务处理结果发送至网络。
在其中一个实施例中,所述方法还包括:
当所述集群中存在至少一个应用服务器中的目标应用程序未故障时,通过未故障的应用服务器,从网络上获取消息;
将所获取到的消息存储至所述未故障的应用服务器的消息持久化文件中,以及通过所述未故障的应用服务器中的目标应用程序,对所获取到的消息进行业务处理,得到所获取到的消息对应的业务处理结果。
一种集群故障恢复装置,集群中包括多个应用服务器,各应用服务器中运行有目标应用程序,所述装置包括:
确定模块,用于当所述集群中所有应用服务器中的目标应用程序故障时,确定各应用服务器消息持久化文件中所存储历史消息的数量;将存储历史消息数量最多的应用服务器确定为目标应用服务器;
读取模块,用于通过所述目标应用服务器从所述目标应用服务器的消息持久化文件中读取目标历史消息;
处理模块,用于通过所述目标应用服务器中的目标应用程序,在内存中对所述目标历史消息进行业务处理,以恢复所述目标应用服务器的内存状态数据。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
当所述集群中所有应用服务器中的目标应用程序故障时,确定各应用服务器消息持久化文件中所存储历史消息的数量;
将存储历史消息数量最多的应用服务器确定为目标应用服务器;
通过所述目标应用服务器从所述目标应用服务器的消息持久化文件中读取目标历史消息;
通过所述目标应用服务器中的目标应用程序,在内存中对所述目标历史消息进行业务处理,以恢复所述目标应用服务器的内存状态数据。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
当所述集群中所有应用服务器中的目标应用程序故障时,确定各应用服务器消息持久化文件中所存储历史消息的数量;
将存储历史消息数量最多的应用服务器确定为目标应用服务器;
通过所述目标应用服务器从所述目标应用服务器的消息持久化文件中读取目标历史消息;
通过所述目标应用服务器中的目标应用程序,在内存中对所述目标历史消息进行业务处理,以恢复所述目标应用服务器的内存状态数据。
上述集群故障恢复方法、装置、计算机设备和存储介质,通过当集群中所有应用服务器中的目标应用程序故障时,确定各应用服务器消息持久化文件中所存储历史消息的数量;将存储历史消息数量最多的应用服务器确定为目标应用服务器;通过目标应用服务器从目标应用服务器的消息持久化文件中读取目标历史消息;通过目标应用服务器中的目标应用程序,在内存中对目标历史消息进行业务处理,以恢复目标应用服务器的内存状态数据。这样,通过在每一个应用服务器中设置消息持久化文件,以使得目标应用程序在内存中处理所接收的到的消息的同时,将所接收到的消息同步存放至消息持久化文件中。由于内存和目标应用程序的进程是相对的,若目标应用程序故障退出,内存也会被***回收,应用服务器的内存状态数据都会丢失,但是消息持久化文件不会受目标应用程序的进程的影响,而消息持久化文件中存放的消息不会丢失。当集群中所有应用服务器中的目标应用程序故障时,从存储历史消息数量最多的应用服务器的消息持久化文件中读取目标历史消息,并通过目标应用程序对目标历史消息进行重新处理,以恢复集群故障前最终的内存状态数据。
附图说明
图1为一个实施例中集群故障恢复方法的应用场景图;
图2为一个实施例中集群故障恢复方法的流程示意图;
图3为一个实施例中集群故障前消息持久化和消息处理过程示意图;
图4为一个实施例中集群故障后目标历史消息处理过程示意图;
图5为一个实施例中集群故障恢复装置的结构框图;
图6为另一个实施例中集群故障恢复装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的集群故障恢复方法,可以应用于如图1所示的应用环境中。该应用环境包括由多个应用服务器102所组成的集群。本领域技术人员可以理解,图1中示出的应用环境,仅仅是与本申请方案相关的部分场景,并不构成对本申请方案应用环境的限定。
当集群中所有应用服务器102中的目标应用程序故障时,确定各应用服务器102消息持久化文件中所存储历史消息的数量;将存储历史消息数量最多的应用服务器102确定为目标应用服务器;通过目标应用服务器从目标应用服务器的消息持久化文件中读取目标历史消息;通过目标应用服务器中的目标应用程序,在内存中对目标历史消息进行业务处理,以恢复目标应用服务器的内存状态数据。
在一个实施例中,如图2所示,提供了一种集群故障恢复方法,以该方法应用于图1中的应用服务器102为例进行说明,包括以下步骤:
S202,当集群中所有应用服务器中的目标应用程序故障时,确定各应用服务器消息持久化文件中所存储历史消息的数量。
其中,消息持久化文件是存储在应用服务器的磁盘中的文件,用于持久化存储从网络接收的消息。持久化存储是指存储状态不受目标应用程序运行状态影响的存储方式,可以理解,在目标应用程序故障退出的情况下,消息持久化文件中存储的消息不会丢失。历史消息是在集群中所有应用服务器中的目标应用程序故障前存储在消息持久化文件中的消息。
具体地,应用服务器中的监测线程可实时监测应用服务器中目标应用程序的健康状态,当监测线程监测到集群中存在至少一个应用服务器中的目标应用程序未故障时,可通过未故障的应用服务器继续接收并处理消息。当监测线程监测到集群中所有应用服务器中的目标应用程序故障时,可确定各应用服务器消息持久化文件中所存储历史消息的数量。
S204,将存储历史消息数量最多的应用服务器确定为目标应用服务器。
其中,目标应用服务器是作为恢复目标的应用服务器。
具体地,集群中各应用服务器中的目标应用程序,由于其出现故障的时间不同,各应用服务器消息持久化文件中所存储历史消息的数量也不同,可以理解,目标应用程序故障时间越早的应用服务器,其持久化文件中所存储历史消息的数量最少,目标应用程序故障时间越晚的应用服务器,其持久化文件中所存储历史消息的数量最多,可将存储历史消息数量最多的应用服务器确定为目标应用服务器。
S206,通过目标应用服务器从目标应用服务器的消息持久化文件中读取目标历史消息。
具体地,目标应用服务器可从目标应用服务器的消息持久化文件中读取目标历史消息。
S208,通过目标应用服务器中的目标应用程序,在内存中对目标历史消息进行业务处理,以恢复目标应用服务器的内存状态数据。
其中,内存可受目标应用程序运行状态的影响,可以理解,在目标应用程序故障退出的情况下,内存中存储的消息和消息对应的内存状态数据会丢失。
具体地,读取目标历史消息之后,可通过目标应用服务器中的目标应用程序,在内存中对目标历史消息进行业务处理,以恢复目标应用服务器的内存状态数据。可以理解,当目标应用服务器中的目标应用程序故障退出时,故障前内存中存储的消息和消息对应的内存状态数据都会丢失,而后续新消息的业务处理,需要基于目标历史消息对应的内存状态数据进行,这样,可导致无法从网络中获取新消息继续进行业务处理。此时,可通过目标应用服务器中的目标应用程序,在内存中对目标历史消息进行再一次的业务处理,以恢复目标应用程序故障之前目标应用服务器的内存状态数据。内存状态数据恢复之后,目标应用服务器便可继续从网络接收新消息,并通过目标应用程序基于已恢复的内存状态数据对新消息进行业务处理。
上述集群故障恢复方法中,通过当集群中所有应用服务器中的目标应用程序故障时,确定各应用服务器消息持久化文件中所存储历史消息的数量;将存储历史消息数量最多的应用服务器确定为目标应用服务器;通过目标应用服务器从目标应用服务器的消息持久化文件中读取目标历史消息;通过目标应用服务器中的目标应用程序,在内存中对目标历史消息进行业务处理,以恢复目标应用服务器的内存状态数据。这样,通过在每一个应用服务器中设置消息持久化文件,以使得目标应用程序在内存中处理所接收的到的消息的同时,将所接收到的消息同步存放至消息持久化文件中。由于内存和目标应用程序的进程是相对的,若目标应用程序故障退出,内存也会被***回收,应用服务器的内存状态数据都会丢失,但是消息持久化文件不会受目标应用程序的进程的影响,而消息持久化文件中存放的消息不会丢失。当集群中所有应用服务器中的目标应用程序故障时,从存储历史消息数量最多的应用服务器的消息持久化文件中读取目标历史消息,并通过目标应用程序对目标历史消息进行重新处理,以恢复集群故障前最终的内存状态数据。
在一个实施例中,上述集群故障恢复方法还包括:当目标应用服务器的内存状态数据全部恢复完成时,从网络上获取新消息;将新消息存储至目标应用服务器的消息持久化文件中,以及通过目标应用服务器中的目标应用程序,基于内存状态数据对新消息进行业务处理,得到新消息对应的业务处理结果。
其中,新消息是目标应用服务器的内存状态数据全部恢复完成之后,目标应用服务器从网络获取得到的消息。
具体地,当目标应用服务器的内存状态数据全部恢复完成时,目标应用服务器可从网络上获取新消息,并将新消息存储至目标应用服务器的消息持久化文件中,以保证下一次目标应用服务器的目标应用程序故障时,该新消息也不会丢失。在将新消息存储至目标应用服务器的消息持久化文件中的同时,异步通过目标应用服务器中的目标应用程序,基于内存状态数据对新消息进行业务处理,得到新消息对应的业务处理结果。
可选地,对新消息进行业务处理具体可以是对新消息进行解析、计算和判断等业务逻辑的处理。
上述实施例中,通过只有在目标应用服务器的内存状态数据全部恢复完成时,才从网络上获取新消息,并对新消息进行业务处理,这样,保证了新消息能够被正常处理,提升业务处理效率。
在一个实施例中,在通过目标应用服务器中的目标应用程序,基于内存状态数据对新消息进行业务处理,得到新消息对应的业务处理结果的步骤之后,上述集群故障恢复方法还包括:将新消息对应的业务处理结果存储至目标应用服务器的结果持久化文件中。
其中,结果持久化文件是存储在应用服务器的磁盘中的文件,用于持久化存储目标应用程序对消息进行业务处理之后的业务处理结果。
具体地,目标应用服务器可将新消息对应的业务处理结果存储至目标应用服务器的结果持久化文件中。
上述实施例中,通过将业务处理结果存储至目标应用服务器的结果持久化文件中,为后续对业务处理结果进行相应处理提供数据支持。
在一个实施例中,目标历史消息是目标应用服务器的消息持久化文件中的所有历史消息,或,目标应用服务器的消息持久化文件中预先设置的配置参数所指定的部分历史消息。
具体地,可从目标应用服务器的消息持久化文件中,直接获取所有的历史消息作为目标历史消息,提供给目标应用程序进行重新处理,以恢复目标应用服务器的内存状态数据。或者,可从目标应用服务器的消息持久化文件中,获取所有历史消息中的一部分历史消息作为目标历史消息。
举例说明,历史消息可按照持久化的先后顺序,形成历史消息序列。进而,可根据预先设置的起始位置和终止位置,从历史消息序列中选择起始位置和终止位置所指向的历史消息作为目标历史消息。或者,也可以预先设置丢弃历史消息序列中指定区间的历史消息,将历史消息序列中除指定区间外的历史消息作为目标历史消息。比如,目标应用服务器的目标应用程序故障之前,目标应用服务器的消息持久化文件存储有1000条历史消息,目标应用服务器的目标应用程序故障之后,通过配置参数过滤掉历史消息序列中的第1-500条,可直接将第501-1000条历史消息作为目标历史消息。
上述实施例中,通过两种目标历史消息的选取方式,可提供灵活的集群故障恢复方式。
在一个实施例中,步骤S208,也就是通过目标应用服务器中的目标应用程序,在内存中对目标历史消息进行业务处理的步骤之后,上述集群故障恢复方法还包括:获取目标历史消息对应的业务处理结果;将所有目标历史消息对应的业务处理结果发送至网络,或,对目标历史消息对应的业务处理结果进行过滤处理,并将过滤后的目标历史消息对应的业务处理结果发送至网络。
举例说明,可根据故障时消息序列中消息的断点位置,过滤掉断点位置之前的历史消息对应的业务处理结果,由于断点位置之前的历史消息对应的业务处理结果已经被下游应用接收,可无需重复发送至网络上。
上述实施例中,通过将过滤后的目标历史消息对应的业务处理结果发送至网络,可避免相同业务处理结果的重复发送。
在一个实施例中,上述集群故障恢复方法还包括:当集群中存在至少一个应用服务器中的目标应用程序未故障时,通过未故障的应用服务器,从网络上获取消息;将所获取到的消息存储至未故障的应用服务器的消息持久化文件中,以及通过未故障的应用服务器中的目标应用程序,对所获取到的消息进行业务处理,得到所获取到的消息对应的业务处理结果。
具体地,一般情况下,集群中的应用服务器中的应用程序,不会突然全部一起发生故障,当集群中存在至少一个应用服务器中的目标应用程序未故障时,通过未故障的应用服务器,从网络上继续获取消息,以保证集群的高可用性,将所获取到的消息存储至未故障的应用服务器的消息持久化文件中,同时,通过未故障的应用服务器中的目标应用程序,对所获取到的消息进行业务处理,得到所获取到的消息对应的业务处理结果。
上述实施例中,只要集群中存在至少一个应用服务器中的目标应用程序未故障时,通过未故障的应用服务器,从网络上获取消息并进行业务处理,以保证该集群均可正常对外提供服务,提升了集群的容错能力。
在一个实施例中,在目标应用服务器的内存状态数据完全恢复之后,还可以通过其他集群故障恢复方法,对集群中除目标应用服务器之外的应用服务器的内存状态数据进行故障恢复。
在一个实施例中,如图3所示,应用服务器中的应用程序发生故障之前,应用服务器可从网络接收消息,并将所接收的消息持久化保存在磁盘的消息持久化文件中,同时,通过应用服务器中的目标应用程序,在内存中对消息进行业务处理,得到消息对应的业务处理结果。应用服务器可将消息对应的结果持久化保存在磁盘的结果持久化文件中,同时将消息对应的业务处理结果发送至网络。
在一个实施例中,如图4所示,应用服务器中的应用程序发生故障之后,应用服务器可暂停从网络接收消息,并从磁盘的消息持久化文件中读取目标历史消息,通过应用服务器中的目标应用程序,在内存中对目标历史消息进行业务处理,得到目标历史消息对应的业务处理结果。应用服务器可将目标历史消息对应的结果持久化保存在磁盘的结果持久化文件中,同时将过滤后的目标历史消息对应的目标业务处理结果发送至网络。
应该理解的是,虽然图2的各个步骤按照顺序依次显示,但是这些步骤并不是必然按照顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种集群故障恢复装置500,集群中包括多个应用服务器,各应用服务器中运行有目标应用程序,集群故障恢复装置500包括:确定模块501、读取模块502和处理模块503,其中:
确定模块501,用于当集群中所有应用服务器中的目标应用程序故障时,确定各应用服务器消息持久化文件中所存储历史消息的数量;将存储历史消息数量最多的应用服务器确定为目标应用服务器。
读取模块502,用于通过目标应用服务器从目标应用服务器的消息持久化文件中读取目标历史消息。
处理模块503,用于通过目标应用服务器中的目标应用程序,在内存中对目标历史消息进行业务处理,以恢复目标应用服务器的内存状态数据。
在一个实施例中,处理模块503还用于当目标应用服务器的内存状态数据全部恢复完成时,从网络上获取新消息;将新消息存储至目标应用服务器的消息持久化文件中,以及通过目标应用服务器中的目标应用程序,基于内存状态数据对新消息进行业务处理,得到新消息对应的业务处理结果。
在一个实施例中,目标历史消息是目标应用服务器的消息持久化文件中的所有历史消息,或,目标应用服务器的消息持久化文件中预先设置的配置参数所指定的部分历史消息。
在一个实施例中,处理模块503还用于当集群中存在至少一个应用服务器中的目标应用程序未故障时,通过未故障的应用服务器,从网络上获取消息;将所获取到的消息存储至未故障的应用服务器的消息持久化文件中,以及通过未故障的应用服务器中的目标应用程序,对所获取到的消息进行业务处理,得到所获取到的消息对应的业务处理结果。
参考图6,在一个实施例中,集群故障恢复装置500还包括:存储模块504和发送模块505,其中:
存储模块504,用于将新消息对应的业务处理结果存储至目标应用服务器的结果持久化文件中。
发送模块505,用于获取目标历史消息对应的业务处理结果;将所有目标历史消息对应的业务处理结果发送至网络,或,对目标历史消息对应的业务处理结果进行过滤处理,并将过滤后的目标历史消息对应的业务处理结果发送至网络。
上述集群故障恢复装置,通过当集群中所有应用服务器中的目标应用程序故障时,确定各应用服务器消息持久化文件中所存储历史消息的数量;将存储历史消息数量最多的应用服务器确定为目标应用服务器;通过目标应用服务器从目标应用服务器的消息持久化文件中读取目标历史消息;通过目标应用服务器中的目标应用程序,在内存中对目标历史消息进行业务处理,以恢复目标应用服务器的内存状态数据。这样,通过在每一个应用服务器中设置消息持久化文件,以使得目标应用程序在内存中处理所接收的到的消息的同时,将所接收到的消息同步存放至消息持久化文件中。由于内存和目标应用程序的进程是相对的,若目标应用程序故障退出,内存也会被***回收,应用服务器的内存状态数据都会丢失,但是消息持久化文件不会受目标应用程序的进程的影响,而消息持久化文件中存放的消息不会丢失。当集群中所有应用服务器中的目标应用程序故障时,从存储历史消息数量最多的应用服务器的消息持久化文件中读取目标历史消息,并通过目标应用程序对目标历史消息进行重新处理,以恢复集群故障前最终的内存状态数据。
关于集群故障恢复装置的具体限定可以参见上文中对于集群故障恢复方法的限定,在此不再赘述。上述集群故障恢复装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是上述图1中的应用服务器102,其内部结构图可以如图7所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储集群故障恢复数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种集群故障恢复方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
当集群中所有应用服务器中的目标应用程序故障时,确定各应用服务器消息持久化文件中所存储历史消息的数量;
将存储历史消息数量最多的应用服务器确定为目标应用服务器;
通过目标应用服务器从目标应用服务器的消息持久化文件中读取目标历史消息;
通过目标应用服务器中的目标应用程序,在内存中对目标历史消息进行业务处理,以恢复目标应用服务器的内存状态数据
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
当目标应用服务器的内存状态数据全部恢复完成时,从网络上获取新消息;
将新消息存储至目标应用服务器的消息持久化文件中,以及通过目标应用服务器中的目标应用程序,基于内存状态数据对新消息进行业务处理,得到新消息对应的业务处理结果。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
将新消息对应的业务处理结果存储至目标应用服务器的结果持久化文件中。
在一个实施例中,目标历史消息是目标应用服务器的消息持久化文件中的所有历史消息,或,目标应用服务器的消息持久化文件中预先设置的配置参数所指定的部分历史消息。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取目标历史消息对应的业务处理结果;
将所有目标历史消息对应的业务处理结果发送至网络,或,对目标历史消息对应的业务处理结果进行过滤处理,并将过滤后的目标历史消息对应的业务处理结果发送至网络。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
当集群中存在至少一个应用服务器中的目标应用程序未故障时,通过未故障的应用服务器,从网络上获取消息;
将所获取到的消息存储至未故障的应用服务器的消息持久化文件中,以及通过未故障的应用服务器中的目标应用程序,对所获取到的消息进行业务处理,得到所获取到的消息对应的业务处理结果。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
当集群中所有应用服务器中的目标应用程序故障时,确定各应用服务器消息持久化文件中所存储历史消息的数量;
将存储历史消息数量最多的应用服务器确定为目标应用服务器;
通过目标应用服务器从目标应用服务器的消息持久化文件中读取目标历史消息;
通过目标应用服务器中的目标应用程序,在内存中对目标历史消息进行业务处理,以恢复目标应用服务器的内存状态数据
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
当目标应用服务器的内存状态数据全部恢复完成时,从网络上获取新消息;
将新消息存储至目标应用服务器的消息持久化文件中,以及通过目标应用服务器中的目标应用程序,基于内存状态数据对新消息进行业务处理,得到新消息对应的业务处理结果。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将新消息对应的业务处理结果存储至目标应用服务器的结果持久化文件中。
在一个实施例中,目标历史消息是目标应用服务器的消息持久化文件中的所有历史消息,或,目标应用服务器的消息持久化文件中预先设置的配置参数所指定的部分历史消息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取目标历史消息对应的业务处理结果;
将所有目标历史消息对应的业务处理结果发送至网络,或,对目标历史消息对应的业务处理结果进行过滤处理,并将过滤后的目标历史消息对应的业务处理结果发送至网络。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
当集群中存在至少一个应用服务器中的目标应用程序未故障时,通过未故障的应用服务器,从网络上获取消息;
将所获取到的消息存储至未故障的应用服务器的消息持久化文件中,以及通过未故障的应用服务器中的目标应用程序,对所获取到的消息进行业务处理,得到所获取到的消息对应的业务处理结果。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种集群故障恢复方法,其特征在于,集群中包括多个应用服务器,各应用服务器中运行有目标应用程序,所述方法包括:
当所述集群中所有应用服务器中的目标应用程序故障时,确定各应用服务器消息持久化文件中所存储历史消息的数量;
将存储历史消息数量最多的应用服务器确定为目标应用服务器;
通过所述目标应用服务器从所述目标应用服务器的消息持久化文件中读取目标历史消息;
通过所述目标应用服务器中的目标应用程序,在内存中对所述目标历史消息进行业务处理,以恢复所述目标应用服务器的内存状态数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述目标应用服务器的内存状态数据全部恢复完成时,从网络上获取新消息;
将所述新消息存储至所述目标应用服务器的消息持久化文件中,以及通过所述目标应用服务器中的目标应用程序,基于所述内存状态数据对所述新消息进行业务处理,得到所述新消息对应的业务处理结果。
3.根据权利要求2所述的方法,其特征在于,所述通过所述目标应用服务器中的目标应用程序,基于所述内存状态数据对所述新消息进行业务处理,得到所述新消息对应的业务处理结果之后,所述方法还包括:
将所述新消息对应的业务处理结果存储至所述目标应用服务器的结果持久化文件中。
4.根据权利要求1所述的方法,其特征在于,所述目标历史消息是所述目标应用服务器的消息持久化文件中的所有历史消息,或,所述目标应用服务器的消息持久化文件中预先设置的配置参数所指定的部分历史消息。
5.根据权利要求1所述的方法,其特征在于,所述通过所述目标应用服务器中的目标应用程序,在内存中对所述目标历史消息进行业务处理之后,所述方法还包括:
获取所述目标历史消息对应的业务处理结果;
将所有所述目标历史消息对应的业务处理结果发送至网络,或,对所述目标历史消息对应的业务处理结果进行过滤处理,并将过滤后的所述目标历史消息对应的业务处理结果发送至网络。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述集群中存在至少一个应用服务器中的目标应用程序未故障时,通过未故障的应用服务器,从网络上获取消息;
将所获取到的消息存储至所述未故障的应用服务器的消息持久化文件中,以及通过所述未故障的应用服务器中的目标应用程序,对所获取到的消息进行业务处理,得到所获取到的消息对应的业务处理结果。
7.一种集群故障恢复装置,其特征在于,集群中包括多个应用服务器,各应用服务器中运行有目标应用程序,所述装置包括:
确定模块,用于当所述集群中所有应用服务器中的目标应用程序故障时,确定各应用服务器消息持久化文件中所存储历史消息的数量;将存储历史消息数量最多的应用服务器确定为目标应用服务器;
读取模块,用于通过所述目标应用服务器从所述目标应用服务器的消息持久化文件中读取目标历史消息;
处理模块,用于通过所述目标应用服务器中的目标应用程序,在内存中对所述目标历史消息进行业务处理,以恢复所述目标应用服务器的内存状态数据。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
获取模块,用于当所述目标应用服务器的内存状态数据全部恢复完成时,从网络上获取新消息;
存储模块,用于将所述新消息存储至所述目标应用服务器的消息持久化文件中;
所述处理模块还用于通过所述目标应用服务器中的目标应用程序,基于所述内存状态数据对所述新消息进行业务处理,得到所述新消息对应的业务处理结果。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110914006.XA CN113626240A (zh) | 2021-08-10 | 2021-08-10 | 集群故障恢复方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110914006.XA CN113626240A (zh) | 2021-08-10 | 2021-08-10 | 集群故障恢复方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113626240A true CN113626240A (zh) | 2021-11-09 |
Family
ID=78384012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110914006.XA Pending CN113626240A (zh) | 2021-08-10 | 2021-08-10 | 集群故障恢复方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113626240A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114584462A (zh) * | 2021-12-27 | 2022-06-03 | 天翼云科技有限公司 | 一种网络业务的处理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669821A (zh) * | 2018-11-16 | 2019-04-23 | 深圳证券交易所 | 消息中间件的集群部分故障恢复方法、服务器及存储介质 |
CN109684128A (zh) * | 2018-11-16 | 2019-04-26 | 深圳证券交易所 | 消息中间件的集群整体故障恢复方法、服务器及存储介质 |
CN112231148A (zh) * | 2020-10-23 | 2021-01-15 | 北京思特奇信息技术股份有限公司 | 分布式缓存数据离线传输方法、装置及可读存储介质 |
-
2021
- 2021-08-10 CN CN202110914006.XA patent/CN113626240A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669821A (zh) * | 2018-11-16 | 2019-04-23 | 深圳证券交易所 | 消息中间件的集群部分故障恢复方法、服务器及存储介质 |
CN109684128A (zh) * | 2018-11-16 | 2019-04-26 | 深圳证券交易所 | 消息中间件的集群整体故障恢复方法、服务器及存储介质 |
CN112231148A (zh) * | 2020-10-23 | 2021-01-15 | 北京思特奇信息技术股份有限公司 | 分布式缓存数据离线传输方法、装置及可读存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114584462A (zh) * | 2021-12-27 | 2022-06-03 | 天翼云科技有限公司 | 一种网络业务的处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110995468B (zh) | 待分析***的***故障处理方法、装置、设备和存储介质 | |
CN108710673B (zh) | 实现数据库高可用方法、***、计算机设备和存储介质 | |
CN110704312B (zh) | 压力测试的方法、装置、计算机设备和存储介质 | |
CN112491659B (zh) | 一种流量回放测试方法、装置、计算机设备和存储介质 | |
CN110727698A (zh) | 数据库访问方法、装置、计算机设备和存储介质 | |
CN115994044B (zh) | 基于监控服务的数据库故障处理方法、装置及分布式集群 | |
CN111198921A (zh) | 数据库的切换方法、装置、计算机设备和存储介质 | |
CN111506326A (zh) | 终端设备的升级方法、装置、设备及存储介质 | |
CN111901176B (zh) | 故障确定方法、装置、设备及存储介质 | |
CN113626240A (zh) | 集群故障恢复方法、装置、计算机设备和存储介质 | |
CN114500315A (zh) | 设备状态监控方法、装置、计算机设备及存储介质 | |
CN113010306A (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
CN113312309B (zh) | 快照链的管理方法、装置和存储介质 | |
CN111061610B (zh) | 集群***性能测试报告的生成方法、装置和计算机设备 | |
CN115328814B (zh) | 基于镜像对的故障注入方法、装置、设备和存储介质 | |
CN110555017A (zh) | 区块链数据清理方法、装置、计算机设备和存储介质 | |
CN113282334A (zh) | 软件缺陷的恢复方法、装置、计算机设备和存储介质 | |
CN112818204B (zh) | 一种业务的处理方法、装置、设备及存储介质 | |
CN110489208B (zh) | 虚拟机配置参数核查方法、***、计算机设备和存储介质 | |
CN111475335B (zh) | 一种数据库快速恢复的方法、***、终端及存储介质 | |
CN115168236A (zh) | 自动化测试方法及电子设备、存储介质 | |
CN112860702A (zh) | 试验执行工单验证方法、装置、计算机设备和存储介质 | |
CN115292314B (zh) | 序列号生成方法、装置、计算机设备和存储介质 | |
CN110673987A (zh) | 数据库的恢复方法、装置、设备和存储介质 | |
CN114281578B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 2301, building 5, Shenzhen new generation industrial park, 136 Zhongkang Road, Meidu community, Meilin street, Futian District, Shenzhen City, Guangdong Province Applicant after: Shenzhen Huarui Distributed Technology Co.,Ltd. Address before: Room 2301, building 5, Shenzhen new generation industrial park, 136 Zhongkang Road, Meidu community, Meilin street, Futian District, Shenzhen City, Guangdong Province Applicant before: SHENZHEN ARCHFORCE FINANCIAL TECHNOLOGY Co.,Ltd. |