一种基于缓存的数据存储系统及方法转让专利

申请号 : CN200910303454.5

文献号 : CN101576855B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张利

申请人 : 深圳市科陆电子科技股份有限公司

摘要 :

本发明涉及一种基于缓存的数据存储系统及方法。所述系统包括:用于检测连接至应用服务器的网络或应用服务器异常的第一检测单元;用于对采集客户端的数据进行磁盘缓存的第一磁盘文件缓存单元;用于数据存储或处理的应用服务器;所述第一检测单元分别与第一磁盘文件缓存单元及应用服务器连接,所述第一磁盘文件缓存单元与应用服务器连接。所述基于缓存的数据存储方法包括以下步骤:第一步.将采集客户端的数据送入磁盘文件缓存单元进行磁盘缓存;第二步.将磁盘文件缓存的数据送入应用服务器处理、存储。本发明的系统及方法在发生网络服务异常情况下或程序某个模块发生异常时也不会影响到已采集数据的存储,保证了采集数据的完整性,提高了效率。

权利要求 :

1.一种基于缓存的数据存储系统,所述基于缓存的数据存储系统包括:用于检测连接至应用服务器的网络或应用服务器异常的第一检测单元(101)、用于对采集客户端的数据进行磁盘缓存的第一磁盘文件缓存单元(102)、用于数据存储或处理的应用服务器(103);

所述第一检测单元(101)分别与第一磁盘文件缓存单元(102)及应用服务器(103)连接,所述第一磁盘文件缓存单元(102)与应用服务器(103)连接;

其特征在于:

所述基于缓存的数据存储系统进一步包括:用于检测连接至数据库的网络或数据库异常的第二检测单元(104)、用于对应用服务器输出的数据进行磁盘缓存的第二磁盘文件缓存单元(105)、和用于数据存储的数据库(106);

所述第二检测单元(104)分别与第二磁盘文件缓存单元(105)及数据库(106)连接,所述第二磁盘文件缓存单元(105)与数据库(106)连接;

所述基于缓存的数据存储系统进一步包括:用于对采集客户端的数据进行内存空间缓存的第一内存缓存单元(107)和用于对应用服务器输出的数据进行内存空间缓存的第二内存缓存单元(108);

所述第一内存缓存单元(107)连接于第一检测单元(101)与应用服务器(103)之间,所述第二内存缓存单元(108)连接于第二检测单元(104)与数据库(106)之间。

2.根据权利要求1所述的基于缓存的数据存储系统,其特征在于:所述基于缓存的数据存储系统采用J2EE+(JBOSS应用服务器或Weblogic应用服务器)+(Oracle数据库或Sybase数据库)构成。

3.一种基于缓存的数据存储方法,所述基于缓存的数据存储方法包括以下步骤:a.将采集客户端的数据送入磁盘文件缓存单元进行磁盘缓存;

b.将磁盘文件缓存单元缓存的数据送入应用服务器处理、存储;

c.将应用服务器输出的数据送入磁盘文件缓存单元进行磁盘文件缓存; d.将磁盘文件缓存的数据送入数据库;

所述基于缓存的数据存储方法的详细步骤如下:

所述步骤a具体为:检测连接至存储单元的网络或存储单元是否异常,如果连接至存储单元的网络或存储单元正常,则将采集客户端的数据直接送入存储单元;如果连接至存储单元的网络或存储单元发生异常,则将采集客户端的数据送入磁盘文件缓存单元进行磁盘缓存;

所述步骤b具体为:如果连接至存储单元的网络或存储单元恢复正常,则将磁盘文件缓存单元的数据送入存储单元存储;

其特征在于:

所述步骤c具体为:检测连接至数据库的网络或数据库是否异常,如果连接至数据库的网络或数据库正常,则将应用服务器输出的数据直接送入数据库;如果连接至数据库的网络或数据库发生异常,则将应用服务器输出的数据送入磁盘文件缓存单元进行磁盘文件缓存;

所述步骤d具体为:如果连接至数据库的网络或数据库恢复正常,则将磁盘文件缓存单元的数据送入数据库。

4.根据权利要求3所述的基于缓存的数据存储方法,其特征在于:所述步骤a进一步包括:在采集客户端的数据存入应用服务器前,对采集客户端的数据进行内存空间缓存的步骤。

5.根据权利要求3所述的基于缓存的数据存储方法,其特征在于:所述步骤c进一步包括:在应用服务器输出的数据存入数据库前,对应用服务器输出的数据进行内存缓存的步骤。

说明书 :

一种基于缓存的数据存储系统及方法

【技术领域】

[0001] 本发明涉及适用于J2EE分布式平台采集数据存储领域,特别涉及一种基于缓存的数据存储系统及方法。【背景技术】
[0002] 在采用J2EE分布式大型数据应用系统中,系统的各个应用模块可能安装在不同的应用服务器中,如果系统是按正常的流程直接将数据存储到数据库中,而当由于某些原因造成系统应用模块之间的网络连接异常或是应用服务器异常不能进行数据存储,这样就会造成已采集数据不能正常及时的保存至数据库中,造成数据的缺失,从而影响了数据存储的完整性。而且在系统从网络异常或软件异常中恢复正常后,系统又要对缺失数据进行重复的采集存储抄作,从而降低了效率。【发明内容】
[0003] 为了解决现有技术J2EE分布式大型数据应用系统已采集数据不能正常及时的保存至数据库中,造成数据的缺失,影响数据存储的完整性,从网络异常或软件异常中恢复正常后,系统又要对缺失数据进行重复的采集存储抄作,降低效率的技术问题,本发明提供了一种基于缓存的数据存储系统及方法。
[0004] 本发明解决现有技术存在的技术问题所采用的技术方案是:提供一种基于缓存的数据存储系统。所述基于缓存的数据存储系统包括:用于检测连接至应用服务器的网络或应用服务器异常的第一检测单元;用于对采集客户端的数据进行磁盘缓存的第一磁盘文件缓存单元;用于数据存储或处理的应用服务器;所述第一检测单元分别与第一磁盘文件缓存单元及应用服务器连接,所述第一磁盘文件缓存单元与应用服务器连接。
[0005] 根据本发明所述的基于缓存的数据存储系统一优选技术方案:所述基于缓存的数据存储系统进一步包括:用于检测连接至数据库的网络或数据库异常的第二检测单元;用于对应用服务器输出的数据进行磁盘缓存的第二磁盘文件缓存单元;和用于数据存储的数据库;所述第二检测单元分别与第二磁盘文件缓存单元及数据库连接,所述第二磁盘文件缓存单元与数据库连接。
[0006] 根据本发明所述的基于缓存的数据存储系统一优选技术方案:所述基于缓存的数据存储系统进一步包括:用于对采集客户端的数据进行内存空间缓存的第一内存缓存单元和用于对应用服务器输出的数据进行内存空间缓存的第二内存缓存单元;所述第一内存缓存单元连接于第一检测单元与应用服务器之间,所述第二内存缓存单元连接于第二检测单元与数据库之间。
[0007] 根据本发明所述的基于缓存的数据存储系统一优选技术方案:所述基于缓存的数据存储系统采用J2EE平台的JBOSS应用服务器或Weblogic应用服务器+Oracle数据库或Sybase数据库构成。
[0008] 本发明提供一种基于缓存的数据存储方法。所述基于缓存的数据存储方法包括以下步骤:第一步.将采集客户端的数据送入磁盘文件缓存单元进行磁盘缓存;第二步.将磁盘文件缓存的数据送入应用服务器处理、存储。
[0009] 根据本发明所述的基于缓存的数据存储方法一优选技术方案:所述第一步的详细步骤如下:检测连接至存储单元的网络或存储单元是否异常,如果连接至存储单元的网络或存储单元正常,则将采集客户端的数据直接送入存储单元;如果连接至存储单元的网络或存储单元发生异常,则将采集客户端的数据送入磁盘文件缓存单元进行磁盘缓存;所述第二步的详细步骤如下:如果连接至存储单元的网络或存储单元恢复正常,则将磁盘文件缓存单元的数据送入存储单元存储。
[0010] 根据本发明所述的基于缓存的数据存储方法一优选技术方案:所述第一步进一步包括:在采集客户端的数据存入应用服务器前,对采集客户端的数据进行内存空间缓存的步骤。
[0011] 根据本发明所述的基于缓存的数据存储方法一优选技术方案:所述基于缓存的数据存储方法进一步包括以下步骤:第三步.将应用服务器输出的数据送入磁盘文件缓存单元进行磁盘文件缓存;第四步.将磁盘文件缓存的数据送入数据库。
[0012] 根据本发明所述的基于缓存的数据存储方法一优选技术方案:所述第三步的详细步骤如下:检测连接至数据库的网络或数据库是否异常,如果连接至数据库的网络或数据库正常,则将应用服务器输出的数据直接送入数据库;如果连接至数据库的网络或数据库发生异常,则将应用服务器输出的数据送入磁盘文件缓存单元进行磁盘文件缓存;所述第四步的详细步骤如下:如果连接至数据库的网络或数据库恢复正常,则将磁盘文件缓存单元的数据送入数据库。
[0013] 根据本发明所述的基于缓存的数据存储方法一优选技术方案:所述第三步进一步包括:在应用服务器输出的数据存入数据库前,对应用服务器输出的数据进行内存缓存的步骤。
[0014] 采用上述系统及方法时,通过在数据采集客户端和应用服务器端增加了数据缓存操作,在数据传送至下一步之前先进行一步缓存操作,如果出现应用服务器异常或网络产生异常的情况下能将已采集到的数据保存在缓存中,而当整个系统恢复正常运行后,系统又能同步的从缓存中取出数据进行正常的存储操作,避免了因为异常造成的数据存储缺失及系统恢复正常后重复采集数据的问题,从而最大限度的保证已采集数据存储的完整性,避免了重复操作数据工作提高了效率。【附图说明】
[0015] 图1是本发明实施例基于缓存的数据存储系统的结构框架示意图;
[0016] 图2是本发明实施例基于缓存的数据存储方法的流程示意图;
[0017] 图3是本发明实施例基于缓存的数据存储方法的系统结构示意图。【具体实施方式】
[0018] 下面结合附图和实施例对本发明进行详细说明。
[0019] 本发明的通过对系统中不同的应用模块实施不同的数据缓存方式来保证已采集到的数据能正常的存储到数据库中,避免因为网络异常原因或是应用服务器异常造成的已采集的数据不能正常存储到数据库而丢失的问题。最大程度的保证了系统在出现问题恢复后对数据重复采集问题。
[0020] 参照图1,图1是本发明实施例基于缓存的数据存储系统的结构框架示意图。本实施例中,所述基于缓存的数据存储系统包括:用于检测连接至应用服务器的网络或应用服务器异常的第一检测单元101;用于对采集客户端的数据进行内存缓存的第一内存缓存单元107;用于对采集客户端的数据进行磁盘缓存的第一磁盘文件缓存单元102;用于数据存储或处理的应用服务器103;用于检测连接至数据库的网络或数据库异常的第二检测单元104;用于对应用服务器输出的数据进行内存缓存的第二内存缓存单元108;用于对应用服务器输出的数据进行磁盘缓存的第二磁盘文件缓存单元105;和用于数据存储的数据库106;所述第一检测单元101、第一内存缓存单元107、应用服务器103、第二检测单元104、第二内存缓存单元108及数据库106依次连接,所述第一磁盘文件缓存单元102分别与第一检测单元101和应用服务器103连接,所述第二磁盘文件缓存单元105分别与第二检测单元104和数据库106连接。
[0021] 参照图2,图2是本发明实施例基于缓存的数据存储方法的流程示意图。如图2所示:所述基于缓存的数据存储方法包括以下步骤:第一步.将采集客户端的数据送入磁盘文件缓存单元进行磁盘缓存;第二步.将磁盘文件缓存的数据送入应用服务器处理、存储,第三步.将应用服务器输出的数据送入磁盘文件缓存单元进行磁盘文件缓存;第四步.将磁盘文件缓存的数据送入数据库。
[0022] 其中,所述第一步具体为:检测连接至存储单元的网络或存储单元是否异常,如果连接至存储单元的网络或存储单元正常,则将采集客户端的数据直接送入存储单元;如果连接至存储单元的网络或存储单元发生异常,则将采集客户端的数据送入磁盘文件缓存单元进行磁盘缓存,其中,所述第一步进一步包括:在采集客户端的数据存入应用服务器前,对采集客户端的数据进行内存空间缓存的步骤。
[0023] 所述第二步具体为:如果连接至存储单元的网络或存储单元恢复正常,则将磁盘文件缓存单元的数据送入存储单元存储。
[0024] 所述第三步具体为:检测连接至数据库的网络或数据库是否异常,如果连接至数据库的网络或数据库正常,则将应用服务器输出的数据直接送入数据库;如果连接至数据库的网络或数据库发生异常,则将应用服务器输出的数据送入磁盘文件缓存单元进行磁盘文件缓存,其中,所述第三步进一步包括:在应用服务器输出的数据存入数据库前,对应用服务器输出的数据进行内存缓存的步骤。
[0025] 所述第四步具体为:如果连接至数据库的网络或数据库恢复正常,则将磁盘文件缓存单元的数据送入数据库。
[0026] 本实施例中,在对采集到的数据进行正常的处理过程中,如果采集客户端连接至应用服务器的网络正常并且应用服务器运行正常,采集数据的客户端首先会将数据缓存至内存空间中,再同步从内存空间中取出数据通过EJB上送至应用服务器,再由应用服务器进行数据处理。如果采集客户端连接至应用服务器的网络异常或是应用服务器本身运行异常,则采集数据客户端会首先将数据写入到预先指定好的数据文件中进行保存,一旦当网络恢复正常连接或是应用服务器恢复正常运行,再从采集客户端会同步从数据文件中取出数据通过EJB上送至应用服务器,再由应用服务器进行数据处理。当应用服务器接收到由采集客户端上送过来的数据,按照正常的数据流程,如果应用服务器连接至数据库的网络连接正常,应用服务器会首先将数据缓存至内存空间中,再同步从内存空间中取出数据存储至数据库中。如果连接至数据库的网络连接异常,应用服务器会同步将从采集客户端中接收到的数据写入到指定的数据文件中进行存储,当连接至数据库的网络恢复正常连接,应用服务器会自动重连至数据库,并同步在数据文件中取出数据存储至数据库中。
[0027] 采用上述系统及方法时,通过在数据采集客户端和应用服务器端增加了数据缓存操作,在数据传送至下一步之前先进行一步缓存操作,如果出现应用服务器异常或网络产生异常的情况下能将已采集到的数据保存在缓存中,而当整个系统恢复正常运行后,系统又能同步的从缓存中取出数据进行正常的存储操作,避免了因为异常造成的数据存储缺失及系统恢复正常后重复采集数据的问题,从而最大限度的保证已采集数据存储的完整性,避免了重复操作数据工作提高了效率。
[0028] 参照图3,图3是本发明实施例基于缓存的数据存储方法的结构示意图。
[0029] 如图3所示:第一步.将采集客户端输入数据进行缓存。第二步.将采集客户端缓存数据发送到应用服务器进行缓存。第三步.从应用服务缓存数据中取出数据进行数据库存储
[0030] 所述第一步及第二步具体为:采集客户端200检测连接应用服务器500之间的网络连接是否正常或是应用服务器500运行是否正常,如果网络连接和应用服务器运行正常则首先进行内存空间缓存301,然后从内存空间缓存301中取出数据通过EJB接口400发送到应用服务器500进行处理。如果网络连接不正常或应用服务器运行不正常,则进行磁盘文件缓存302,等待网络连接恢复正常和应用服务器运行正常后,从磁盘文件缓存302中取出数据通过EJB数据发送模块400发送到应用服务器500进行处理。
[0031] 所述第二步具体为:应用服务器500检测连接数据库的网络是否正常或是数据库600运行是否正常,如果网络连接和数据库运行正常则首先在应用服务器500端进行内存缓存501,然后从内存空间缓存501中取出数据存储至数据库600。如果网络连接不正常或是数据库运行异常,则在应用服务器端500进行磁盘文件缓存502,等待网络恢复正常和数据库600运行正常后,从磁盘文件缓存502中取数据存储到数据库600中。
[0032] 以上内容是结合具体的优选技术方案对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。