一种数据的处理方法及处理装置与流程

文档序号:14897446发布日期:2018-07-08 09:00阅读:148来源:国知局

本发明属于计算机技术领域,尤其涉及一种保存数据的方法及装置。



背景技术:

在金融应用服务器集群系统下,为了保证系统的高可靠性,通常采用双机的工作模式。在双机的工作模式下,两个应用服务器并行处理不同的业务,两个应用服务器之间是平等的关系。当一个应用服务器宕机后,其待执行业务将由另外一个能够正常运行的应用服务器全面接管。

当应用服务器a处理业务a到某一步骤时,发生宕机,此时由应用服务器b全面接管后继应该由应用服务器a处理的业务。由于应用服务器a已经处理了业务a中的部分步骤,因此应用服务器b无法获知还未被完全处理的业务a的相关数据,例如,业务a进行到了哪个步骤,进而应用服务器b不能继续处理业务a中还未被处理的步骤,产生单边账的问题。严重影响了用户的体验。



技术实现要素:

有鉴于此,本发明的目的在于提供一种保存数据的方法及装置,以解决现有技术中无法继续处理宕机的应用服务器中还未完成的业务而导致的单边账问题。

技术方案如下:

本发明提供一种数据的处理方法,包括:

获取共享内存数据;其中,所述共享内存数据为共享应用程序在处理业务过程中产生的数据;

将所述共享内存数据存储到闪存中;其中,所述闪存用于当服务器宕机时,插入到正常运行的服务器中。

优选地,所述获取共享内存数据包括:

获取为共享应用程序分配的内存地址;

间隔预定时间,从所述内存地址中读取与共享应用程序对应的共享内存数据。

本发明提供一种数据的处理方法,包括:

检测是否有闪存插入;其中,所述闪存中存储有宕机服务器中的共享内存数据;

检测有闪存插入,则从所述闪存中读取所述共享内存数据;

将所述共享内存数据存储到内存中。

优选地,所述将所述共享内存数据存储到内存中包括:

为共享应用程序分配内存地址;

将读取到的所述共享应用程序的共享内存数据存储到所述内存地址中。

优选地,在所述将所述共享内存数据存储到内存中之后,还包括:

向与共享内存数据对应的共享应用程序发送执行命令;其中,所述执行命令用于控制共享应用程序按照所述共享应用程序的内存地址下的共享内存数据处理业务。

本发明还提供一种数据的处理装置,包括:

获取单元,用于获取共享内存数据;其中,所述共享内存数据为共享应用程序在处理业务过程中产生的数据;

第一存储单元,用于将所述共享内存数据存储到闪存中;其中,所述闪存用于当服务器宕机时,插入到正常运行的服务器中。

优选地,所述获取单元包括:

获取子单元,用于获取为共享应用程序分配的内存地址;

读取子单元,用于间隔预定时间,从所述内存地址中读取与共享应用程序对应的共享内存数据。

本发明提供一种数据的处理装置,包括:

检测单元,用于检测是否有闪存插入;其中,所述闪存中存储有宕机服务器中的共享内存数据;

读取单元,用于在所述检测单元检测有闪存插入时,从所述闪存中读取所述共享内存数据;

第二存储单元,用于将所述共享内存数据存储到内存中。

优选地,所述第二存储单元包括:

分配子单元,用于为共享应用程序分配内存地址;

存储子单元,用于将读取到的所述共享应用程序的共享内存数据存储到所述内存地址中。

优选地,还包括:

发送单元,用于向与共享内存数据对应的共享应用程序发送执行命令;其中,所述执行命令用于控制共享应用程序按照所述共享应用程序的内存地址下的共享内存数据处理业务。

与现有技术相比,本发明提供的上述技术方案具有如下优点:

从上述技术方案可知,本申请中获取共享内存数据;将所述共享内存数据存储到闪存中;其中,所述闪存用于当服务器宕机时,插入到正常运行的服务器中。由于闪存中已经存储了发生宕机的应用服务器中的共享内存数据,因此通过读取闪存中的数据可以获取到发生宕机的应用服务器在执行业务过程中产生的内存数据,且共享内存数据为共享应用程序在处理业务过程中产生的数据,因此根据内存数据可以明确发生宕机的应用服务器未处理完成的业务,进而可以根据获取到的内存数据继续执行宕机应用服务器未处理完成的业务,避免了单边帐问题的产生,提高了用户的体验。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种数据的处理方法的流程图;

图2是本发明实施例提供的另一种数据的处理方法的流程图;

图3是本发明实施例提供的一种数据的处理方法的流程图;

图4是本发明实施例提供的另一种数据的处理方法的流程图;

图5是本发明实施例提供的一种数据的处理装置的结构示意图;

图6是本发明实施例提供的另一种数据的处理装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本实施例公开了一种数据的处理方法,所述处理方法应用在应用服务器集群系统中的应用服务器上,其中,所述应用服务器与集群系统中其他的应用服务器互相独立,多个应用服务器之间并不存在连接关系。需要注意的是,集群系统中的多个应用服务器之间是平等的关系,具有相同的执行业务的能力,即具有相同的用于执行业务的应用程序。但是不同的应用服务器并行处理不同的业务,当一个应用服务器宕机后,其待执行业务将由另一个能够正常运行的应用服务器接管。

参见图1,该实施例包括以下步骤:

s101、获取共享内存数据;其中,所述共享内存数据为共享应用程序在处理业务过程中产生的数据;

在利用集群中的应用服务器处理业务的过程中,为了避免此应用服务器出现宕机的问题后,其他的应用服务器不能继续处理此宕机应用服务器未处理以及未处理完成的业务,在利用此应用服务器处理业务之前,需要先将闪存插入此应用服务器中。在本实施例中,闪存可以为热插拔闪存卡。

应用服务器中包括至少一个共享应用程序,其中,所述共享应用程序为集群中的应用服务器中都具有的应用程序,以便在一个应用服务器利用共享应用程序处理业务时出现宕机,可以利用其他应用服务器中具有的相同的共享应用程序继续处理该业务。

应用服务器的内存中存储有共享应用程序处理业务的过程中产生的数据。

从存储有共享应用程序处理业务的过程中产生的数据地址下,获取共享内存数据。

s102、将所述共享内存数据存储到闪存中;其中,所述闪存用于当服务器宕机时,插入到正常运行的服务器中。

将应用服务器的内存中存储的共享内存数据,存储到应用服务器上插入的闪存中。

当插入有闪存的应用服务器宕机后,将闪存拔下,并将此闪存插入到能够正常运行的应用服务器中。由于闪存中已经存储了发生宕机的应用服务器中的共享内存数据,因此能够正常运行的应用服务器通过读取闪存中的数据可以获取到发生宕机的应用服务器在执行业务过程中产生的内存数据,进而可以根据获取到的内存数据继续执行宕机应用服务器未处理以及未处理完成的业务。

从上述技术方案可知,本实施例中获取共享内存数据;将所述共享内存数据存储到闪存中;其中,所述闪存用于当服务器宕机时,插入到正常运行的服务器中。由于闪存中已经存储了发生宕机的应用服务器中的共享内存数据,因此通过读取闪存中的数据可以获取到发生宕机的应用服务器在执行业务过程中产生的内存数据,且共享内存数据为共享应用程序在处理业务过程中产生的数据,因此根据内存数据可以明确发生宕机的应用服务器未处理完成的业务,进而可以根据获取到的内存数据继续执行宕机应用服务器未处理完成的业务,避免了单边帐问题的产生,提高了用户的体验。

本实施例公开了另一种数据的处理方法,参见图2,该实施例包括以下步骤:

s201、获取为共享应用程序分配的内存地址;

集群系统中的应用服务器中除了包括共享应用程序外,还可以包括区别于其他应用服务器的应用程序。无论是共享应用程序还是区别于其他应用服务器的应用程序,在处理各自的业务时,都会实时产生数据,并需要将产生的数据保存到内存中。

为了区分不同的应用程序产生的数据,需要为每个应用程序预先分配内存地址,使得应用程序在业务处理的过程中,将实时产生的数据存储到为此应用程序分配的内存地址中。

不同的共享应用程序的内存地址不同。分别获取为每个共享应用程序分配的内存地址。

s202、间隔预定时间,从所述内存地址中读取与共享应用程序对应的共享内存数据;

在共享应用程序处理业务的过程中,针对一项业务而言,处理到此业务的不同步骤,产生的数据不同,为此共享应用程序分配的内存地址下存储的数据也不同。为了能够将内存地址下存储的数据实时存储到闪存中,需要实时从内存地址中读取数据。

预先设置预定时间,每间隔预定时间从内存地址中读取一次数据。

预定时间可以设置为固定值,也可以为非固定值。其中,预设时间为固定值时,可以根据闪存的读写速度以及为共享应用程序分配的内存地址的大小,设置固定时间间隔。例如,选用的闪存为ufs2.0闪存,其读写速度最高可达到1400mb/s,假设为共享应用程序分配的内存地址的大小为smb,则固定的时间间隔n=s/1400+1。其中,n表示的是预设时间,单位为秒;s表示的是内存地址大小,单位为mb。加1秒的目的是避免过快的从内存地址中读取数据并将读取到的数据存储到闪存中,影响共享应用程序对业务的处理。当然,在其他实施例中可以采用其他的方法设置预设时间。

其中,预设时间为非固定值时,可以采用在处理单元(cpu)空闲时,读取内存中的数据。

s203、将所述共享内存数据存储到闪存中;其中,所述闪存用于当服务器宕机时,插入到正常运行的服务器中。

在从为共享应用程序分配的内存地址下读取到共享内存数据后,将读取到的共享内存数据存储到闪存中。由于每间隔预设时间就读取到一次共享内存数据,因此每间隔预设时间就将共享内存数据存储到闪存中一次。即读取到共享内存数据后,同步写入闪存中,通过闪存保存切片数据。且,由于不同的共享应用程序的内存地址不同,因此在从不同的内存地址获取到不同的共享内存数据后,可以为获取到的共享内存数据设置标识。其中,所述标识用于区分共享应用程序。最后将带有标识的共享内存数据存储到闪存中。

由于闪存的存储空间有限,为了节省闪存的存储空间,在将共享内存数据存储到闪存中时,自动覆盖上一次存储到闪存中的共享内存数据。

此外,由于应用服务器中包括的共享应用程序可能为多个,一个闪存具有的存储空间可能并不能够完整存储一次所有共享应用程序产生的共享内存数据,基于此,本实施例中可以在应用服务器中同时插入多个闪存。

应用服务器检测到插入多个闪存时,对多个闪存进行登记,以便后续能够明确将读取到的共享内存数据存储到哪个闪存中。

在本实施例中,为了提高数据交互的安全性,将共享内存数据存储到闪存中后进行加密处理。例如可以采用md5的方式加密。当然还可以采用其他方式加密,此处不做具体限定。

从上述技术方案可知,本申请中为共享应用程序分配内存地址,即开辟共享内存,并每间隔预设时间从开辟的共享内存中读取共享内存数据,同步将共享内存数据存储到闪存中。由于闪存中已经存储了发生宕机的应用服务器中的共享内存数据,因此通过读取闪存中的数据可以获取到发生宕机的应用服务器在执行业务过程中产生的内存数据,且共享内存数据为共享应用程序在处理业务过程中产生的数据,因此根据内存数据可以明确发生宕机的应用服务器未处理完成的业务,进而可以根据获取到的内存数据继续执行宕机应用服务器未处理完成的业务,避免了单边帐问题的产生,提高了用户的体验。

本实施例公开了一种数据的处理方法,所述处理方法应用在应用服务器集群系统中的能够正常运行的应用服务器上。参见图3,该实施例包括以下步骤:

s301、检测是否有闪存插入;其中,所述闪存中存储有宕机服务器中的共享内存数据;

将发生宕机的应用服务器中插入的闪存拔下,并插入到能够正常运行的应用服务器中。

能够正常运行的应用服务器实时检测是否有闪存插入。

s302、检测有闪存插入,则从所述闪存中读取所述共享内存数据;

检测到有闪存插入,则说明应用服务器集群系统中存在宕机的应用服务器,需要插入闪存的这一应用服务器读取已经宕机的应用服务器中未完成的业务,并对未完成的业务继续进行处理或冲正。其中,通过从插入的闪存中读取已经宕机的应用服务器中的共享内存数据。

在本实施例中,通过应用服务器集群系统中应用服务器之间的约定方式,从闪存中读取所述共享内存数据。其中,约定方式可以为加密解密方式。通过在应用服务器之间设置约定方式,可以提高数据交互的安全性。

检测到没有闪存插入,则应用服务器继续处理自身需要处理的业务。

s303、将所述共享内存数据存储到内存中。

读取到已经宕机的应用服务器中的共享内存数据后,将共享内存数据存储到内存中,以便后续根据自身内存中的数据对相应的业务进行处理。

从上述技术方案可知,本实施例中检测是否有闪存插入,检测有闪存插入,则从所述闪存中读取所述共享内存数据;并将所述共享内存数据存储到内存中。由于闪存中已经存储了发生宕机的应用服务器中的共享内存数据,因此通过读取闪存中的数据可以获取到发生宕机的应用服务器在执行业务过程中产生的内存数据,且共享内存数据为共享应用程序在处理业务过程中产生的数据,因此根据内存数据可以明确发生宕机的应用服务器未完成的业务,进而可以根据获取到的内存数据继续执行宕机应用服务器未完成的业务,避免了单边帐问题的产生,提高了用户的体验。且,本实施例中采用应用服务器上原本具有的接口插入闪存,例如usb接口,通过闪存实现了应用服务器之间的共享内存镜像,进而在不改变原有应用服务器集群系统的架构和硬件组成的基础上,实现了共享内存镜像。同时,本实施例中各个应用服务器之间在没有连接关系的条件下实现了共享内存镜像,相较于现有技术中两个应用服务器之间连接,在一个应用服务器处理自身业务的条件下,实时从另一个应用服务器中获取内存数据进而实现对另一个应用服务器备份的技术方案,本实施例降低了应用服务器中的处理单元的工作负担,进而提高了处理单元处理业务的速度。

本实施例中公开了另一种数据的处理方法,参见图4,该实施例包括以下步骤:

s401、检测是否有闪存插入;其中,所述闪存中存储有宕机服务器中的共享内存数据;

s402、检测有闪存插入,则从所述闪存中读取所述共享内存数据;

本实施例中步骤s401-s402的实现方式与上一实施例中步骤s301-s302的实现方式类似,此处不再赘述。

s403、为共享应用程序分配内存地址;

集群系统中的应用服务器中除了包括共享应用程序外,还可以包括区别于其他应用服务器的应用程序。无论是共享应用程序还是区别于其他应用服务器的应用程序,在处理各自的业务时,都会实时产生数据,并将产生的数据保存到内存中。

即在需要应用服务器利用应用程序处理业务时,需要先为应用程序分配内存地址,以便存储此应用程序在处理业务过程中产生的数据。

本实施例中为共享应用程序分配内存地址可以为:为应用服务器自身具有的所有共享应用程序逐一分配内存地址;还可以为:根据从所述闪存中读取到的共享内存数据为与共享内存数据对应的共享应用程序分配内存地址。其中,由于闪存中存储的是带有标识的共享内存数据,所述标识用于区分共享应用程序,因此,从所述闪存中读取到共享内存数据后,可以根据共享内存数据的标识确定共享应用程序,并为确定出的共享应用程序分配内存地址。

前一种分配内存地址的方式中,针对共享应用程序而言,无论应用服务器是否要利用此共享应用程序处理业务,都预先为此共享应用程序分配内存地址。而后一种分配内存地址的方式中,针对共享应用程序而言,只有在应用服务器将要利用此共享应用程序处理业务,才为此共享应用程序分配内存地址。后一种分配内存地址的方式相较于前一种分配内存地址的方式,可以节省应用服务器的内存空间。

s404、将读取到的所述共享应用程序的共享内存数据存储到所述内存地址中;

根据读取到的带有标识的共享内存数据中的标识,确定此共享内存数据对应的共享应用程序,进而确定为此共享应用程序分配的内存地址,最后将共享内存数据存储到为此共享应用程序分配的内存地址中。

s405、向与共享内存数据对应的共享应用程序发送执行命令;其中,所述执行命令用于控制共享应用程序按照所述共享应用程序的内存地址下的共享内存数据处理业务。

在将宕机的应用服务器中的共享内存数据通过闪存存储到能够正常运行的应用服务器中后,正常运行的应用服务器向自身具有的共享应用程序发送执行命令,使得共享应用程序根据内存地址中存储的共享内存数据处理业务。

从上述技术方案可知,本实施例中检测是否有闪存插入,检测有闪存插入,则从所述闪存中读取所述共享内存数据;并将所述共享内存数据存储到内存中。由于闪存中已经存储了发生宕机的应用服务器中的共享内存数据,因此通过读取闪存中的数据可以获取到发生宕机的应用服务器在执行业务过程中产生的内存数据,且共享内存数据为共享应用程序在处理业务过程中产生的数据,因此根据内存数据可以明确发生宕机的应用服务器未完成的业务,进而可以根据获取到的内存数据继续执行宕机应用服务器未完成的业务,避免了单边帐问题的产生,提高了用户的体验。同时,本实施例中闪存在断电的情况下并不会丢失数据,方便后续工作人员根据闪存中存储的宕机前很短一段时间内的数据,分析宕机产生的原因,进而做出相应的处理。

对应上述数据的处理方法,本发明还提供了一种数据的处理装置,所述处理装置的结构示意图请参阅图5所示,本实施例中处理装置包括:

获取单元501和第一存储单元502;

获取单元501,用于获取共享内存数据;其中,所述共享内存数据为共享应用程序在处理业务过程中产生的数据;

可选地,获取单元501包括:

获取子单元和读取子单元;

获取子单元,用于获取为共享应用程序分配的内存地址;

读取子单元,用于间隔预定时间,从所述内存地址中读取与共享应用程序对应的共享内存数据。

第一存储单元502,用于将所述共享内存数据存储到闪存中;其中,所述闪存用于当服务器宕机时,插入到正常运行的服务器中。

从上述技术方案可知,本实施例中为共享应用程序分配内存地址,即开辟共享内存,并每间隔预设时间从开辟的共享内存中读取共享内存数据,同步将共享内存数据存储到闪存中。由于闪存中已经存储了发生宕机的应用服务器中的共享内存数据,因此通过读取闪存中的数据可以获取到发生宕机的应用服务器在执行业务过程中产生的内存数据,且共享内存数据为共享应用程序在处理业务过程中产生的数据,因此根据内存数据可以明确发生宕机的应用服务器未处理完成的业务,进而可以根据获取到的内存数据继续执行宕机应用服务器未处理完成的业务,避免了单边帐问题的产生,提高了用户的体验。

本发明还提供了另一种数据的处理装置,所述处理装置的结构示意图请参阅图6所示,本实施例中处理装置包括:

检测单元601、读取单元602、第二存储单元603和发送单元604;

检测单元601,用于检测是否有闪存插入;其中,所述闪存中存储有宕机服务器中的共享内存数据;

读取单元602,用于在所述检测单元检测有闪存插入时,从所述闪存中读取所述共享内存数据;

第二存储单元603,用于将所述共享内存数据存储到内存中。

可选地,第二存储单元603包括:

分配子单元和存储子单元;

分配子单元,用于为共享应用程序分配内存地址;

存储子单元,用于将读取到的所述共享应用程序的共享内存数据存储到所述内存地址中。

发送单元604,用于向与共享内存数据对应的共享应用程序发送执行命令;其中,所述执行命令用于控制共享应用程序按照所述共享应用程序的内存地址下的共享内存数据处理业务。

从上述技术方案可知,本实施例中检测是否有闪存插入,检测有闪存插入,则从所述闪存中读取所述共享内存数据;并将所述共享内存数据存储到内存中。由于闪存中已经存储了发生宕机的应用服务器中的共享内存数据,因此通过读取闪存中的数据可以获取到发生宕机的应用服务器在执行业务过程中产生的内存数据,且共享内存数据为共享应用程序在处理业务过程中产生的数据,因此根据内存数据可以明确发生宕机的应用服务器未完成的业务,进而可以根据获取到的内存数据继续执行宕机应用服务器未完成的业务,避免了单边帐问题的产生,提高了用户的体验。且,本实施例中采用应用服务器上原本具有的接口插入闪存,例如usb接口,通过闪存实现了应用服务器之间的共享内存镜像,进而在不改变原有应用服务器集群系统的架构和硬件组成的基础上,实现了共享内存镜像。同时,本实施例中各个应用服务器之间在没有连接关系的条件下实现了共享内存镜像,相较于现有技术中两个应用服务器之间连接,在一个应用服务器处理自身业务的条件下,实时从另一个应用服务器中获取内存数据进而实现对另一个应用服务器备份的技术方案,本实施例降低了应用服务器中的处理单元的工作负担,进而提高了处理单元处理业务的速度。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的装置而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1