一种数据一致性检测方法、装置、存储介质和服务器与流程

文档序号:20775610发布日期:2020-05-19 20:44阅读:139来源:国知局
一种数据一致性检测方法、装置、存储介质和服务器与流程

【技术领域】

本发明涉及数据检测领域,具体地涉及一种数据一致性检测方法、装置、存储介质和服务器。



背景技术:

在12306网页或者app上查询席位数据和余票数据的场景下,由于席位数据和余票数据是存储在路局节点数据库的,而用户在12306网页或者app上查询所执行的查询操作是在总公司节点的缓存数据库集群,中间经过总公司和18个路局节点的多个不同类型的数据库汇总、中转、分发,并经过大量计算后的结果存在缓存数据库集群中,存在数据不一致的可能,从而导致网络上看到票买不到票的问题,因此如何检测18个路局节点数据库与总公司的缓存数据库集群的余票数据一致性问题成为亟需解决的问题。



技术实现要素:

有鉴于此,本发明提供一种数据一致性检测方法、装置、存储介质和服务器,能够对数据的一致性进行检测,从而提高了数据的准确性。

一方面,本发明实施例提供了一种数据一致性检测方法,所述方法基于一种数据一致性的检测系统,所述系统包括多个检测区域,所述检测区域包括主节点和从节点;

所述方法包括:

从所述多个检测区域中选取出当前检测区域;

从所述当前检测区域的主节点获取第一余票信息,通过哈希算法对所述第一余票信息中提取的当前主节点检测段数据进行哈希计算,生成第一哈希值;

从所述当前检测区域的从节点获取第二余票信息,通过哈希算法对所述第二余票信息中提取的当前从节点检测段数据进行哈希计算,生成第二哈希值;

判断所述第一哈希值与所述第二哈希值是否一致,获取数据一致性检测结果。

可选地,所述从所述当前检测区域的主节点获取第一余票信息,通过哈希算法对所述第一余票信息中提取的当前检测段数据进行哈希计算,生成第一哈希值,包括:

从所述当前检测区域的主节点获取第一余票信息,所述第一余票信息包括多个主节点检测段数据,所述主节点检测段数据包括多个主节点检测字段;

从所述第一余票信息中提取的当前主节点检测段数据,并从所述当前主节点检测段数据中提取出指定的主节点检测字段;

通过哈希算法对所述指定的主节点检测字段进行哈希计算,生成第一哈希值。

可选地,所述从所述当前检测区域的从节点获取第二余票信息,通过哈希算法对所述第二余票信息中提取的当前检测段数据进行哈希计算,生成第二哈希值,包括:

从所述当前检测区域的从节点获取第二余票信息,所述第二余票信息包括多个从节点检测段数据;

从所述第二余票信息中提取的当前从节点检测段数据,并从所述当前从节点检测段数据中提取出指定的从节点检测字段;

通过哈希算法对所述指定的从节点检测字段进行哈希计算,生成第二哈希值。

可选地,所述判断所述第一哈希值与所述第二哈希值是否一致,获取数据一致性检测结果,包括:

判断所述第一哈希值与所述第二哈希值是否一致;

若判断出所述第一哈希值与所述第二哈希值一致,则判断从所述第一余票信息中是否能提取出下一个主节点检测段数据,若判断出从所述第一余票信息中提取出下一个主节点检测段数据,将下一个主节点检测段数据作为当前主节点检测段数据,继续执行所述从所述第一余票信息中提取的当前主节点检测段数据,并从所述当前主节点检测段数据中提取出指定的主节点检测字段的步骤。

可选地,还包括:

若判断出从所述第一余票信息中未提取出下一个主节点检测段数据,从多个检测区域中选取出下一个检测区域,并将下一个检测区域作为当前检测区域,继续执行所述从所述当前检测区域的主节点获取第一余票信息,所述第一余票信息包括多个主节点检测段数据,所述主节点检测段数据包括多个主节点检测字段的步骤。

可选地,所述检测段数据包括多个检测数据,所述检测数据包括多个检测字段;所述方法还包括:

若判断出所述第一哈希值与所述第二哈希值不一致,则从所述当前主节点检测段数据提取出当前主节点检测数据;

通过哈希算法对所述当前主节点检测数据进行哈希计算,生成第三哈希值;

从所述当前从节点检测段数据提取出当前从节点检测数据;

通过哈希算法对所述当前从节点检测数据进行哈希计算,生成第四哈希值;

判断所述第三哈希值与所述第四哈希值是否一致,获取数据一致性检测结果。

可选地,所述判断所述第三哈希值与所述第四哈希值是否一致,获取数据一致性检测结果,包括:

判断所述第三哈希值与所述第四哈希值是否一致;

若判断出所述第三哈希值与所述第四哈希值一致,则从所述当前主节点检测段数据中提取出下一个主节点检测数据,将所述下一个主节点检测数据作为当前主节点检测数据,并继续执行所述通过哈希算法对所述当前主节点检测数据进行哈希计算,生成第三哈希值的步骤;

若判断出所述第三哈希值与所述第四哈希值不一致,则生成告警信息。

另一方面,本发明实施例提供了一种数据一致性的检测装置,所述装置基于一种数据一致性的检测系统,所述系统包括多个检测区域,所述检测区域包括主节点和从节点;

所述装置包括:

选取模块,用于所述从多个检测区域中选取出当前检测区域;从所述当前检测区域的主节点获取第一余票信息;从所述当前检测区域的从节点获取第二余票信息;

计算模块,用于通过哈希算法对所述第一余票信息中提取的当前主节点检测段数据进行哈希计算,生成第一哈希值;通过哈希算法对所述第二余票信息中提取的当前从节点检测段数据进行哈希计算,生成第二哈希值;

判断模块,用于判断所述第一哈希值与所述第二哈希值是否一致,获取数据一致性检测结果。

另一方面,本发明实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述的数据一致性检测方法。

另一方面,本发明实施例提供了一种服务器,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,所述程序指令被处理器加载并执行上述的数据一致性检测方法的步骤。

本发明实施例提供的技术方案中,从多个检测区域中选取出当前检测区域,从当前检测区域的主节点获取第一余票信息,通过哈希算法对第一余票信息中提取的当前主节点检测段数据进行哈希计算,生成第一哈希值;从当前检测区域的从节点获取第二余票信息,通过哈希算法对第二余票信息中提取的当前从节点检测段数据进行哈希计算,生成第二哈希值,判断第一哈希值与第二哈希值是否一致,获取数据一致性检测结果,从而能够对数据的一致性进行检测,提高了数据的准确性。

【附图说明】

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

图1是本发明一实施例所提供的一种数据一致性检测系统的架构图;

图2是本发明一实施例所提供的一种数据一致性检测方法的流程图;

图3是本发明又一实施例所提供的一种数据一致性检测方法的流程图;

图4是本发明一实施例所提供的一种数据一致性的检测装置的结构示意图;

图5为本发明实施例提供的一种服务器的示意图。

【具体实施方式】

为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。

应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,甲和/或乙,可以表示:单独存在甲,同时存在甲和乙,单独存在乙这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

图1是本发明一实施例所提供的一种数据一致性检测系统的架构图,如图1所示,该系统包括多个检测区域。例如多个检测区域可包括检测区域1、检测区域2、检测区域3、检测区域4以及检测区域5,其中,每个检测区域包括主节点和从节点。

本发明实施例中,如图1所示,该系统包括源数据库、多个目标数据库以及缓存数据库集群,其中,主节点包括源数据库或者目标数据库,从节点包括目标数据库或者目标数据库对应的缓存数据库集群。例如,检测区域1包括源数据库11和目标数据库12,其中源数据库11为主节点,目标数据库12为从节点;检测区域2包括源数据库11和目标数据库13,其中源数据库11为主节点,目标数据库13为从节点;检测区域3包括源数据库11和目标数据库14,其中源数据库11为主节点,目标数据库14为从节点;检测区域4包括目标数据库13和目标数据库对应的缓存数据库集群13’,其中目标数据库13为主节点,目标数据库对应的缓存数据库集群13’为从节点;检测区域5包括目标数据库14和目标数据库对应的缓存数据库集群14’,其中目标数据库14为主节点,目标数据库对应的缓存数据库集群14’为从节点。

源数据库可以为18个路局节点数据库,目标数据库12、目标数据库13以及目标数据库14为总公司级别的节点数据库,例如目标数据库12为铁道部中心中转数据库,目标数据库13为一中心中转数据库,目标数据14为二中心中转数据库。目标数据库13通过数据库监听组件131、数据传输组件132以及入库组件(图中未示出)与目标数据库13对应的缓存数据库集群13’连接。目标数据库14通过数据库监听组件141、数据传输组件142以及入库组件(图中未示出)与目标数据库14对应的缓存数据库集群14’连接。其中,例如数据库监听组件可包括ctmsx,数据传输组件可包括rabbitmq,本发明对于组件的类型并不做具体限定,例如数据传输组件还可以包括其他mq组件。

本发明实施例中,源数据库11用于存储第一余票信息。目标数据库用于存储与源数据库11对应的第二余票信息。目标数据库集群用于计算余票信息中的余票数量,并提供接口以供应用程序调用接口获取余票数量。

图2为本发明一实施例提供的一种数据一致性检测方法的流程图,如图2所示,该方法基于一种数据一致性的检测系统,系统包括多个检测区域,检测区域包括主节点和从节点;所述方法包括:

步骤101、从多个检测区域中选取出当前检测区域。

步骤102、从当前检测区域的主节点获取第一余票信息,通过哈希算法对第一余票信息中提取的当前主节点检测段数据进行哈希计算,生成第一哈希值。

步骤103、从当前检测区域的从节点获取第二余票信息,通过哈希算法对第二余票信息中提取的当前从节点检测段数据进行哈希计算,生成第二哈希值。

步骤104、判断第一哈希值与第二哈希值是否一致,获取数据一致性检测结果。

本发明实施例提供的技术方案中,从多个检测区域中选取出当前检测区域,从当前检测区域的主节点获取第一余票信息,通过哈希算法对第一余票信息中提取的当前主节点检测段数据进行哈希计算,生成第一哈希值;从当前检测区域的从节点获取第二余票信息,通过哈希算法对第二余票信息中提取的当前从节点检测段数据进行哈希计算,生成第二哈希值,判断第一哈希值与第二哈希值是否一致,获取数据一致性检测结果,从而能够对数据的一致性进行检测,提高了数据的准确性。

图3为本发明又一实施例提供的一种数据一致性检测方法的流程图,如图3所示,该方法基于一种数据一致性的检测系统,系统包括多个检测区域,检测区域包括主节点和从节点;所述方法包括:

步骤201、从多个检测区域中选取出当前检测区域。

本发明实施例中,如图1所示,多个检测区域包括检测区域1、检测区域2、检测区域3、检测区域4以及检测区域5。例如,从5个检测区域中,选取出检测区域1作为当前检测区域。

步骤202、从当前检测区域的主节点获取第一余票信息,第一余票信息包括多个主节点检测段数据,主节点检测段数据包括多个主节点检测字段。

本发明实施例中,检测区域包括主节点和从节点,例如检测区域1包括源数据库11和目标数据库12,其中源数据库11为主节点,目标数据库12为从节点。

主节点包括第一余票信息以及其他信息。例如从源数据库1中获取第一余票信息,其中,第一余票信息可包括多个余票表。由于第一余票信息的数据量较大,因此将第一余票信息划分为多个主节点检测段数据,例如,一个主节点检测段数据包括100个主节点检测数据,具体的数量可根据需求进行设定。而每个主节点检测数据包括多个主节点检测字段,从而可以确定出主节点检测段数据包括多个主节点检测字段。主节点检测字段包括始发站、途经站、终点站、车次、发车日期、席位级别、余票数量、车次长短途规则、车次开行规则、余票共用规则、调度判断规则等字段,其中,席位级别、余票数据、席位长短途规则、车次开行规则、余票共用规则、调度判断规则是与余票计算规则相关的字段。车次长短途规则用于表示车次类型,该车次类型包括长途车或者短途车。其中,车次长短途是指该车次买长途还是短途,例如,某一车次经过北京、天津、济南、南京、苏州、上海,长途车是指购买从北京到南京之后的站的票,而短途车是指够买北京到天津,或者北京到济南的票。车次开行规则用于表示车次运行状态,该车次运行状态包括每日运行或者隔日运行等。余票共用规则用于表示席位的可售站,该席位的可售站包括行驶路线中车站均可售或者路线路线中指定车站可售。调度判断规则用于表示车站运行状态以及车次是否加挂,该车站运行状态包括正常运营或者停止运营,该车次是否加挂包括车次是否有增加车厢数量。此外,主节点检测字段中还包括其他与余票计算规则相关的字段,本发明对此不做限定。

步骤203、从第一余票信息中提取的当前主节点检测段数据,并从当前主节点检测段数据中提取出指定的主节点检测字段。

本发明实施例中,第一余票信息包括多个主节点检测段数据,一个主节点检测段数据包括多个主节点检测数据,一个主节点检测数据包括多个主节点检测字段。指定的主节点检测字段包括与余票计算规则相关的主要字段,例如余票数量、席位级别、车次长短途规则、车次开行规则、余票共用规则、调度判断规则等检测字段。

例如,第一余票信息中包括有100个主节点检测段数据,提取出一个主节点检测段数据作为当前主节点检测段数据,而一个主节点检测段数据包括多个主节点检测数据,由于每个主节点检测数据包括相同的多个主节点检测字段,因此主节点检测端数据也包括相同的主节点检测字段,从而可以从当前主节点检测段数据中提取出指定的主节点检测字段。其中,指定的主节点检测字段包括余票数量、席位级别、车次长短途规则、车次开行规则、余票共用规则、调度判断规则等检测字段。在本发明实施例中,从第一余票信息中锁定当前主节点检测段数据,通过锁定当前主节点检测段数据的步骤,使得系统允许对当前主节点检测段数据进行查询的情况下,暂时禁止对当前主节点检测段数据进行更改和删除,而不影响除当前主节点检测段数据之外的其他的数据的查询、更改和删除,从而实现数据一致性的动态检测,提高了数据检测的灵活性,避免了因为数据一致性的检测而需要暂停业务运行的问题。

步骤204、通过哈希算法对指定的主节点检测字段进行哈希计算,生成第一哈希值。

本发明实施例中,哈希算法包括crc32、md5、sha1、自定义哈希算法等。第一哈希值包括一个字符串或者一个数值,具体根据采用的哈希算法计算得到。本发明实施例通过对指定的主节点检测字段进行哈希计算。

例如,如下表1所示,每一行数据为一个主节点检测数据,每100个主节点检测数据为一个主节点检测段数据。例如,一个主节点检测数据包括12个主节点检测字段,其中,主节点检测字段分别为始发站、途径站、终点站、车次、发车日期、席位级别、余票数据、车次长短途规则、车次开行规则、余票共用规则、调度判断规则,因此一个主节点检测段数据也包括12个主节点检测字段,其中,余票数量、席位级别、车次长短途规则、车次开行规则、余票共用规则、调度判断规则等检测字段是与余票计算规则相关的主要字段,因此将余票数量、席位级别、车次长短途规则、车次开行规则、余票共用规则、调度判断规则等检测字段作为指定的主节点检测字段。

从当前主节点检测段数据中提取指定的主节点检测字段之后,每一个指定的主节点检测字段也包括100个数据。例如指定的主节点检测字段为余票数量、席位级别、车次长短途规则、车次开行规则、余票共用规则、调度判断规则等检测字段,则余票数量检测字段、席位级别检测字段、车次长短途规则检测字段、车次开行规则检测字段、余票共用规则检测字段、调度判断规则检测字段等检测字段中均分别包括100个数据,对余票数量检测字段、席位级别检测字段、车次长短途规则检测字段、车次开行规则检测字段、余票共用规则检测字段、调度判断规则检测字段等检测字段中分别包括的100个数据进行哈希计算,生成一个哈希值。

表1

在其他实施例中,例如处于购票业务较少的情况时,可将每500个主节点检测数据为一个主节点检测段数据,从而可以提高检测速率。本发明对于主节点检测段数据中包含的主节点检测的个数不做具体限定,可根据需求进行设定。

步骤205、从当前检测区域的从节点获取第二余票信息,第二余票信息包括多个从节点检测段数据,从节点检测段数据包括多个从节点检测字段。

本发明实施例中,从节点包括与主节点中的第一余票信息对应的第二余票信息以及其他信息,其中,第二余票信息中也包括多个余票表。第二余票信息中的每个余票表与第一余票信息中的每个余票表具备一一对应的关系。由于第二余票信息的数据量较大,因此将第二余票信息划分为多个从节点检测段数据,例如,一个从节点检测段数据包括100个从节点检测数据,具体的数量可根据需求进行设定。而每个从节点检测数据包括多个从节点检测字段,从而可以确定出从节点检测段数据包括多个从节点检测字段。从节点检测字段包括始发站、途经站、终点站、车次、发车日期、席位级别、余票数量、车次长短途规则、车次开行规则、余票共用规则、调度判断规则等字段,其中,席位级别、余票数据、席位长短途规则、车次开行规则、余票共用规则、调度判断规则是与余票计算规则相关的字段。车次长短途规则用于表示车次类型,该车次类型包括长途车或者短途车。其中,车次长短途是指该车次买长途还是短途,例如,某一车次经过北京、天津、济南、南京、苏州、上海,长途车是指购买从北京到南京之后的站的票,而短途车是指够买北京到天津,或者北京到济南的票。车次开行规则用于表示车次运行状态,该车次运行状态包括每日运行或者隔日运行等。余票共用规则用于表示席位的可售站,该席位的可售站包括行驶路线中车站均可售或者路线路线中指定车站可售。调度判断规则用于表示车站运行状态以及车次是否加挂,该车站运行状态包括正常运营或者停止运营,该车次是否加挂包括车次是否有增加车厢数量。此外,从节点检测字段中还包括其他与余票计算规则相关的字段,本发明对此不做限定。

步骤206、从第二余票信息中提取的当前从节点检测段数据,并从当前从节点检测段数据中提取出指定的从节点检测字段。

本发明实施例中,第二余票信息包括多个从节点检测段数据,一个从节点检测段数据包括多个从节点检测数据,一个从节点检测数据包括多个从节点检测字段。指定的从节点检测字段包括与余票计算规则相关的主要字段,例如余票数量、席位级别、车次长短途规则、车次开行规则、余票共用规则、调度判断规则等检测字段。

例如,第二余票信息中包括有100个从节点检测段数据,提取出一个从节点检测段数据作为当前从节点检测段数据,而一个从节点检测段数据包括多个从节点检测数据,由于每个从节点检测数据包括相同的多个从节点检测字段,因此从节点检测端数据也包括相同的从节点检测字段,从而可以从当前从节点检测段数据中提取出指定的从节点检测字段。其中,指定的从节点检测字段包括与余票计算规则相关的主要字段,例如余票数量、席位级别、车次长短途规则、车次开行规则、余票共用规则、调度判断规则等检测字段。在本发明实施例中,从第二余票信息中锁定当前从节点检测段数据,通过锁定当前从节点检测段数据的步骤,使得系统允许对当前从节点检测段数据进行查询的情况下,暂时禁止对当前从节点检测段数据进行更改和删除,而不影响除当前从节点检测段数据之外的其他的数据的查询、更改和删除,从而实现数据一致性的动态检测,提高了数据检测的灵活性,避免了因为数据一致性的检测而需要暂停业务运行的问题。

步骤207、通过哈希算法对指定的从节点检测字段进行哈希计算,生成第二哈希值。

本发明实施例中,哈希算法包括crc32、md5、sha1、自定义哈希算法等。第一哈希值包括一个字符串或者一个数值,具体根据采用的哈希算法计算得到。本发明实施例通过对指定的从节点检测字段进行哈希计算。

例如,如下表2所示,每一行数据为一个从节点检测数据,每100个从节点检测数据为一个从节点检测段数据。例如,一个从节点检测数据包括12个从节点检测字段,其中,从节点检测字段分别为始发站、途径站、终点站、车次、发车日期、席位级别、余票数据、车次长短途规则、车次开行规则、余票共用规则、调度判断规则,因此一个从节点检测段数据也包括12个从节点检测字段,其中,余票数量、席位级别、车次长短途规则、车次开行规则、余票共用规则、调度判断规则是与余票相关的主要字段,因此将余票数量、席位级别、车次长短途规则、车次开行规则、余票共用规则、调度判断规则作为指定的从节点检测字段。

从当前从节点检测段数据中提取指定的从节点检测字段之后,每一个指定的从节点检测字段也包括100个数据。例如指定的从节点检测字段为余票数量、席位级别、车次长短途规则、车次开行规则、余票共用规则、调度判断规则等检测字段,则余票数量检测字段、席位级别检测字段、车次长短途规则检测字段、车次开行规则检测字段、余票共用规则检测字段、调度判断规则检测字段等检测字段中均分别包括100个数据,对余票数量检测字段、席位级别检测字段、车次长短途规则检测字段、车次开行规则检测字段、余票共用规则检测字段、调度判断规则检测字段等检测字段中分别包括的100个数据进行哈希计算,生成一个哈希值。

表2

在其他实施例中,例如处于购票业务较少的情况时,可将每500个从节点检测数据为一个从节点检测段数据,从而可以提高检测速率。本发明对于从节点检测段数据中包含的从节点检测的个数不做具体限定,可根据需求进行设定。

步骤208、判断第一哈希值与第二哈希值是否一致,若是,则执行步骤209;若否,则执行步骤212。

本发明实施例中,若判断出第一哈希值与第二哈希值一致,表明第一哈希值对应的主节点检测字段中的数据与第二哈希值对应的从节点检测字段中的数据是相同的,可执行步骤209,继续判断下一个主节点检测段数据;若判断出第一哈希值与第二哈希值不一致,表明第一哈希值对应的指定的主节点检测字段中的数据与第二哈希值对应的指定的从节点检测字段中的数据是不同的,执行步骤212。

步骤209、判断从第一余票信息中是否能提取出下一个主节点检测段数据,若是,则执行步骤210;若否,则执行步骤211。

本发明实施例中,若判断出从第一余票信息中能提取出下一个主节点检测段数据,表明第一余票信息中还存在未检测的主节点检测段数据,需要继续进行数据一致性的检测;若判断出从第一余票信息中未提取出下一个主节点检测段数据,表明第一余票信息中主节点检测段数据已经检测完毕,可继续进行下一个检测区域的主节点检测端数据的数据一致性的检测。

步骤210、将下一个主节点检测段数据作为当前主节点检测段数据,并继续执行步骤203。

本发明实施例中,由于第一余票信息中还存在未检测的主节点检测段数据,因此将下一个主节点检测段数据作为当前主节点检测段数据,继续进行数据一致性的检测。

步骤211、从多个检测区域中选取出下一个检测区域,并将下一个检测区域作为当前检测区域,继续执行步骤202。

本发明实施例中,由于第一余票信息中主节点检测段数据已经检测完毕,可继续检测下一个检测区域的主节点检测段数据的数据一致性的检测。

步骤212、从当前主节点检测段数据提取出当前主节点检测数据。

本发明实施例中,如上表1所示,一个主节点检测段数据包括多个主节点检测数据,即,每一行数据为一个主节点检测数据。

步骤213、通过哈希算法对当前主节点检测数据进行哈希计算,生成第三哈希值。

本发明实施例中,通过哈希算法对主节点检测数据进行哈希计算,如上表1所示,即对主节点检测数据中的每一个主节点检测字段中的数据进行哈希计算,生成第三哈希值。

步骤214、从当前从节点检测段数据提取出当前从节点检测数据。

本发明实施例中,如上表2所示,一个从节点检测段数据包括多个从节点检测数据,即,每一行数据为一个从节点检测数据。

步骤215、通过哈希算法对当前从节点检测数据进行哈希计算,生成第四哈希值。

本发明实施例中,通过哈希算法对从节点检测数据进行哈希计算,如上表1所示,即对从节点检测数据中的每一个从节点检测字段中的数据进行哈希计算,生成第三哈希值。

步骤216、判断第三哈希值与第四哈希值是否一致,若是,执行步骤217;若否,执行步骤218。

本发明实施例中,若判断出第三哈希值与第四哈希值一致,表明第三哈希值对应的主节点检测数据与第二哈希值对应的从节点检测数据是相同的,可执行步骤217,继续判断下一个主节点检测数据;若判断出第三哈希值与第四哈希值不一致,表明第三哈希值对应的主节点检测数据与第四哈希值对应的从节点检测字段是不同的,执行步骤218,生成告警信息。

步骤217、从当前主节点检测段数据中提取出下一个主节点检测数据,将下一个主节点检测数据作为当前主节点检测数据,并继续执行步骤213。

本发明实施例中,由于当前主节点检测段数据中还存在未检测的主节点检测数据,因此将下一个主节点检测数据作为当前主节点检测数据,继续进行数据一致性的检测。

步骤218、生成告警信息。

本发明实施例中,若检测出第三哈希值与第四哈希值不一致,表明第三哈希值对应的主节点检测数据与第四哈希值对应的从节点检测字段是不同的,即表明主节点与从节点的余票信息是不一致的,因此根据第三哈希值对应的主节点检测数据与第四哈希值对应的从节点检测字段中不同的数据,生成告警信息,便于后续进行数据同步处理,以使得余票信息能够一致,避免了由于余票信息不一致导致用户网络上看到票买不到票的问题,从而提高了数据的准确性。

本发明实施例中,上述步骤201至步骤218为一个数据动态检测的过程,通过提取检测段数据进行数据一致性的检测,从而实现了不中断业务,减少对业务影响的情况下实时对数据一致性进行检测。

可选地,本发明实施例中,该方法还包括:对主节点的第一余票信息与从节点的第二余票信息进行锁定,通过执行上述步骤201至步骤218,以使得对主节点的第一余票信息与从节点的第二余票信息进行数据一致性的检测。

本发明实施例中的可选方案与上述步骤201至步骤208的区别在于,上述步骤201至步骤208是锁定当前主节点检测段数据或者当前从节点检测段数据,从而不影响其他数据的更改与删除。而可选方案中是将主节点的第一余票信息与从节点的第二余票信息进行锁定,即暂停全部数据的更改与删除,进行的数据一致性的检测。在可选方案中,可在没有购票业务的情况下执行,相对于上述步骤201至步骤208的方案,由于可选方案不需要提取检测段进行数据一致性检测,因此可选方案的检测速率要大于上述方案的检测速率。

本发明实施例提供的技术方案中,从多个检测区域中选取出当前检测区域,从当前检测区域的主节点获取第一余票信息,通过哈希算法对第一余票信息中提取的当前主节点检测段数据进行哈希计算,生成第一哈希值;从当前检测区域的从节点获取第二余票信息,通过哈希算法对第二余票信息中提取的当前从节点检测段数据进行哈希计算,生成第二哈希值,判断第一哈希值与第二哈希值是否一致,获取数据一致性检测结果,从而能够对数据的一致性进行检测,提高了数据的准确性。

图4是本发明一实施例所提供的一种数据一致性的检测装置的结构示意图,如图4所示,该装置包括:选取模块11、计算模块12以及检测模块13。

选取模块11用于从所述多个检测区域中选取出当前检测区域;从所述当前检测区域的主节点获取第一余票信息;从所述当前检测区域的从节点获取第二余票信息。

计算模块12用于通过哈希算法对所述第一余票信息中提取的当前主节点检测段数据进行哈希计算,生成第一哈希值;通过哈希算法对所述第二余票信息中提取的当前从节点检测段数据进行哈希计算,生成第二哈希值。

检测模块13用于判断所述第一哈希值与所述第二哈希值是否一致,获取数据一致性检测结果。

本发明实施例中,该装置的计算模块12具体包括:获取子模块121和计算子模块122。

获取子模块121用于从当前检测区域的主节点获取第一余票信息,所述第一余票信息包括多个主节点检测段数据,所述主节点检测段数据包括多个主节点检测字段;从所述第一余票信息中提取的当前主节点检测段数据,并从所述当前主节点检测段数据中提取出指定的主节点检测字段。

计算子模块122用于通过哈希算法对所述指定的主节点检测字段进行哈希计算,生成第一哈希值。

本发明实施例中,该装置的计算模块12还包括:

获取子模块121还用于从当前检测区域的从节点获取第二余票信息,所述第二余票信息包括多个从节点检测段数据,所述从节点检测段数据包括多个从节点检测字段;从所述第二余票信息中提取的当前从节点检测段数据,并从所述当前从节点检测段数据中提取出指定的从节点检测字段并从所述当前从节点检测段数据中提取出指定的从节点检测字段。

计算子模块122还用于通过哈希算法对所述指定的从节点检测字段进行哈希计算,生成第二哈希值。

本发明实施例中,该装置的检测模块13还包括:检测子模块131、判断子模块132以及处理子模块133。

检测子模块131用于判断所述第一哈希值与所述第二哈希值是否一致;若判断出所述第一哈希值与所述第二哈希值一致,则触发判断子模块132判断从所述第一余票信息中是否能提取出下一个主节点检测段数据。

判断子模块132用于判断从所述第一余票信息中是否能提取出下一个主节点检测段数据。

处理子模块133用于若判断子模块132判断出从所述第一余票信息中提取出下一个主节点检测段数据,将下一个主节点检测段数据作为当前主节点检测段数据,并触发获取子模块121继续执行所述从所述第一余票信息中提取的当前主节点检测段数据,并从所述当前主节点检测段数据中提取出指定的主节点检测字段的步骤。

本发明实施例中,该装置的检测模块13还包括:

处理子模块133还用于若判断子模块132判断出从所述第一余票信息中未提取出下一个主节点检测段数据,从多个检测区域中选取出下一个检测区域,并将下一个检测区域作为当前检测区域,触发获取子模块121继续执行所述从当前检测区域的主节点获取第一余票信息,所述第一余票信息包括多个主节点检测段数据,所述主节点检测段数据包括多个主节点检测字段的步骤。

本发明实施例中,该装置的检测模块13还包括:提取子模块134和计算子模块135。

提取子模块134用于若检测子模块131判断出所述第一哈希值与所述第二哈希值不一致,则从所述当前主节点检测段数据提取出当前主节点检测数据。

计算子模块135用于通过哈希算法对所述当前主节点检测数据进行哈希计算,生成第三哈希值。

提取子模块134还用于从所述当前从节点检测段数据提取出当前从节点检测数据;

计算子模块135还用于通过哈希算法对所述当前从节点检测数据进行哈希计算,生成第四哈希值。

检测子模块131还用于判断所述第三哈希值与所述第四哈希值是否一致,获取数据一致性检测结果。

本发明实施例中,该装置的检测子模块131还包括:检测子模块1311、提取子模块1312以及生成子模块1313。

检测子模块1311还用于判断所述第三哈希值与所述第四哈希值是否一致。

提取子模块1312用于若检测子模块1311判断出所述第三哈希值与所述第四哈希值一致,则从所述当前主节点检测段数据中提取出下一个主节点检测数据,将所述下一个主节点检测数据作为当前主节点检测数据,并触发计算子模块135继续执行通过哈希算法对所述当前主节点检测数据进行哈希计算,生成第三哈希值的步骤;

生成子模块1313用于若检测子模块1311判断出所述第三哈希值与所述第四哈希值不一致,则生成告警信息。

本发明实施例提供的技术方案中,从多个检测区域中选取出当前检测区域,从当前检测区域的主节点获取第一余票信息,通过哈希算法对第一余票信息中提取的当前主节点检测段数据进行哈希计算,生成第一哈希值;从当前检测区域的从节点获取第二余票信息,通过哈希算法对第二余票信息中提取的当前从节点检测段数据进行哈希计算,生成第二哈希值,判断第一哈希值与第二哈希值是否一致,获取数据一致性检测结果,从而能够对数据的一致性进行检测,提高了数据的准确性。

本发明实施例提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述数据一致性检测方法的实施例的各步骤,具体描述可参见上述数据一致性检测方法的实施例。

本发明实施例提供了一种服务器,包括存储器和处理器,存储器用于存储包括程序指令的信息,处理器用于控制程序指令的执行,程序指令被处理器加载并执行时实现上述数据一致性检测方法的步骤。具体描述可参见上述数据一致性检测方法的实施例。

图5为本发明实施例提供的一种服务器的示意图。如图5所示,该实施例的服务器3包括:处理器31、存储器32以及存储在存储32中并可在处理器31上运行的计算机程序33,该计算机程序33被处理器31执行时实现实施例中的应用于数据一致性检测方法,为避免重复,此处不一一赘述。或者,该计算机程序被处理器31执行时实现实施例中应用于数据一致性的检测装置中各模型/单元的功能,为避免重复,此处不一一赘述。

服务器3包括,但不仅限于,处理器31、存储器32。本领域技术人员可以理解,图5仅仅是服务器3的示例,并不构成对服务器3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如服务器3还可以包括输入输出设备、网络接入设备、总线等。

所称处理器31可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器32可以是服务器3的内部存储单元,例如服务器3的硬盘或内存。存储器32也可以是服务器3的外部存储设备,例如服务器3上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器32还可以既包括服务器3的内部存储单元也包括外部存储设备。存储器32用于存储计算机程序以及服务器3所需的其他程序和数据。存储器32还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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