CN109947846A - 交易数据处理方法、装置、计算机设备和存储介质 - Google Patents
交易数据处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN109947846A CN109947846A CN201811449792.5A CN201811449792A CN109947846A CN 109947846 A CN109947846 A CN 109947846A CN 201811449792 A CN201811449792 A CN 201811449792A CN 109947846 A CN109947846 A CN 109947846A
- Authority
- CN
- China
- Prior art keywords
- node
- database
- transaction data
- target
- database node
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种交易数据处理方法、装置、计算机设备和存储介质。其中方法包括:获取交易数据的标识信息;根据标识信息,从N个数据库节点中确定出将要存储交易数据的目标数据库,其中,N个数据库节点可组成一个闭环,每个数据库节点具有各自在闭环上的节点ID,N为大于或等于2的正整数;检测目标数据库是否处于异常状态;若是,则根据目标数据库在闭环上的节点ID,从N个数据库节点除目标数据库节点外的其他数据库节点中选取出备用数据库节点;以及将交易数据存储至备用数据库节点对应的数据库中。该方法可以在保证交易系统的交易性能的同时,还能够将交易数据及时地存储到数据库中。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种交易数据处理方法、装置、计算机设备和计算机可读存储介质。
背景技术
随着互联网技术的快速发展以及网络功能越来越完善,人们工作、生活中越来越多的活动均通过网络完成,比如网络购物。网络购物是通过网络交易平台进行的交易方式,不仅实体商品。例如手机、衣服等能够通过网络交易平台进行交易,而且虚拟商品,例如游戏币、充值卡等也可以通过网络交易平台进行交易。
交易系统在进行交易过程中,必然会产生大量的交易数据。交易系统将交易过程中产生的交易数据存储到对应的数据库。而当将要存储该交易数据的数据库发生异常情况时,交易系统通常将该交易数据的流水号标记为空置位,等待下一次进行数据存储时,遍历标记为空置位的流水号,将这些流水号对应的交易数据存储到备用数据库中。然而,当标记为空置位的流水号更多时,这种处理方式会大大影响交易系统的交易性能。因此,如何在保证交易系统的交易性能的同时,还能够将交易数据及时地存储到数据库,已经成为亟待解决的问题。
发明内容
本发明的目的旨在至少在一定程度上解决上述的技术问题之一。
为此,本发明的第一个目的在于提出一种交易数据处理方法。该方法可以在保证交易系统的交易性能的同时,还能够将交易数据及时地存储到数据库中。
本发明的第二个目的在于提出一种交易数据处理装置。
本发明的第三个目的在于提出一种计算机设备。
本发明的第四个目的在于提出一种计算机可读存储介质。
为达到上述目的,本发明第一方面实施例提出的交易数据处理方法,包括:
获取交易数据的标识信息;
根据所述标识信息,从N个数据库节点中确定出将要存储所述交易数据的目标数据库,其中,所述N个数据库节点可组成一个闭环,每个数据库节点具有各自在所述闭环上的节点ID,N为大于或等于2的正整数;
检测所述目标数据库是否处于异常状态;
若是,则根据所述目标数据库在所述闭环上的节点ID,从所述N个数据库节点除目标数据库节点外的其他数据库节点中选取出备用数据库节点;以及
将所述交易数据存储至所述备用数据库节点对应的数据库中。
本发明实施例的交易数据处理方法,可通过预先将多个数据库看作一个闭环,在交易系统产生交易数据时,可根据这些交易数据的标识信息从该多个数据库中找出对应的目标数据库,并在检测到该目标数据库处于异常时,可从其他的数据库节点中选出备用数据库节点,并将每个交易数据存储到其备用数据库中,这样,通过交易数据的标识信息将产生的交易数据分散地存储到对应的数据库中,并在该数据库异常时,将该原本的落点的交易数据路由到其他库中,以防止拒绝交易,从而可以在保证交易系统的交易性能的同时,还能够将交易数据及时地存储到数据库中。
根据本发明的一个实施例,所述标识信息为流水号;所述根据交易数据的标识信息,从N个数据库节点中确定出将要存储所述交易数据的目标数据库,包括:按照预设规则将所述流水号转换成对应的哈希值;对所述哈希值按所述N取模,得到对应的模数;从所述N个数据库节点中找出节点ID与所述模数一致的数据库节点;将节点ID与所述模数一致的数据库节点作为所述目标数据库。
根据本发明的一个实施例,所述根据所述目标数据库在所述闭环上的节点ID,从所述N个数据库节点除目标数据库节点外的其他数据库节点中选取出备用数据库节点,包括:根据所述目标数据库在所述闭环上的节点ID,从所述N个数据库节点除目标数据库节点外的其他数据库节点中选取M个数据库节点,其中,M为大于或等于2的正整数,且M小于N;从所述M个数据库节点中随机选取一个节点作为所述备用数据库节点。
根据本发明的一个实施例,所述根据所述目标数据库在所述闭环上的节点ID,从所述N个数据库节点除目标数据库节点外的其他数据库节点中选取M个数据库节点,包括:根据所述目标数据库在所述闭环上的节点ID,从所述N个数据库节点中找出位于所述目标数据库节点位置的下一个节点;从所述下一个节点开始,找到所述下一个节点跨越L个节点的第一位置,并将所述第一位置的数据库节点作为第二节点,其中,L为小于N的正整数;从所述第二节点开始,找到所述第二节点跨越所述L个节点的第二位置,并将所述第二位置的数据库节点作为第三节点;将所述下一个节点、所述第二节点和所述第三节点作为所述M个数据库节点。
根据本发明的一个实施例,所述方法还包括:检测所述备用数据库节点是否处于异常状态;如果所述备用数据库节点处于正常状态,则执行所述将所述交易数据存储至所述备用数据库节点对应的数据库中的步骤;如果所述备用数据库节点处于异常状态,则从所述N个数据库节点中找出位于所述下一个节点位置的下一个节点,并将所述位于所述下一个节点位置的下一个节点作为新的下一个节点,并返回执行所述从所述下一个节点开始,找到所述下一个节点跨越L个节点的第一位置,并将所述第一位置的数据库节点作为第二节点的步骤。
根据本发明的一个实施例,所述M的取值是根据数据库节点的总个数以及交易系统针对数据库的实际需求而决定的。
根据本发明的一个实施例,所述方法还包括:如果检测所述目标数据库处于正常状态,则将所述交易数据存储至所述目标数据库。
为达到上述目的,本发明第二方面实施例提出的交易数据处理装置,包括:
获取模块,用于获取交易数据的标识信息;
目标数据库确定模块,用于根据所述标识信息,从N个数据库节点中确定出将要存储所述交易数据的目标数据库,其中,所述N个数据库节点可组成一个闭环,每个数据库节点具有各自在所述闭环上的节点ID,N为大于或等于2的正整数;
第一检测模块,用于检测所述目标数据库是否处于异常状态;
备用节点选取模块,用于在检测所述目标数据库处于异常状态时,根据所述目标数据库在所述闭环上的节点ID,从所述N个数据库节点除目标数据库节点外的其他数据库节点中选取出备用数据库节点;以及
数据存储模块,用于将所述交易数据存储至所述备用数据库节点对应的数据库中。
本发明实施例的交易数据处理装置,可通过预先将多个数据库看作一个闭环,在交易系统产生交易数据时,可根据这些交易数据的标识信息从该多个数据库中找出对应的目标数据库,并在检测到该目标数据库处于异常时,可从其他的数据库节点中选出备用数据库节点,并将每个交易数据存储到其备用数据库中,这样,通过交易数据的标识信息将产生的交易数据分散地存储到对应的数据库中,并在该数据库异常时,将该原本的落点的交易数据路由到其他库中,以防止拒绝交易,从而可以在保证交易系统的交易性能的同时,还能够将交易数据及时地存储到数据库中。
根据本发明的一个实施例,所述标识信息为流水号;所述目标数据库确定模块具体用于:按照预设规则将所述流水号转换成对应的哈希值;对所述哈希值按所述N取模,得到对应的模数;从所述N个数据库节点中找出节点ID与所述模数一致的数据库节点;将节点ID与所述模数一致的数据库节点作为所述目标数据库。
根据本发明的一个实施例,所述备用节点选取模块具体用于:根据所述目标数据库在所述闭环上的节点ID,从所述N个数据库节点除目标数据库节点外的其他数据库节点中选取M个数据库节点,其中,M为大于或等于2的正整数,且M小于N;从所述M个数据库节点中随机选取一个节点作为所述备用数据库节点。
根据本发明的一个实施例,所述备用节点选取模块具体用于:根据所述目标数据库在所述闭环上的节点ID,从所述N个数据库节点中找出位于所述目标数据库节点位置的下一个节点;从所述下一个节点开始,找到所述下一个节点跨越L个节点的第一位置,并将所述第一位置的数据库节点作为第二节点,其中,L为小于N的正整数;从所述第二节点开始,找到所述第二节点跨越所述L个节点的第二位置,并将所述第二位置的数据库节点作为第三节点;将所述下一个节点、所述第二节点和所述第三节点作为所述M个数据库节点。
根据本发明的一个实施例,所述装置还包括:第二检测模块,用于检测所述备用数据库节点是否处于异常状态。
根据本发明的一个实施例,所述M的取值是根据数据库节点的总个数以及交易系统针对数据库的实际需求而决定的。
根据本发明的一个实施例,所述数据存储模块,还用于在检测所述目标数据库处于正常状态时,将所述交易数据存储至所述目标数据库。
为达到上述目的,本发明第三方面实施例提出的计算机设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现本发明第一方面实施例所述的交易数据处理方法。
为达到上述目的,本发明第四方面实施例提出的计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明第一方面实施例所述的交易数据处理方法。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是根据本发明一个实施例的交易数据处理方法的流程图;
图2是根据本发明一个具体实施例的交易数据处理方法的流程图;
图3a、3b、3c、3d、3e和3f是根据本发明实施例的交易数据选库过程的示例图;
图4是根据本发明一个实施例的交易数据处理装置的结构示意图;
图5是根据本发明一个实施例的计算机设备的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的交易数据处理方法、装置、计算机设备和计算机可读存储介质。
图1是根据本发明一个实施例的交易数据处理方法的流程图。需要说明的是,本发明实施例的交易数据处理方法可应用于本发明实施例的交易数据处理装置。该处理装置可被配置于计算机设备上。
如图1所示,该交易数据处理方法可以包括:
S110,获取交易数据的标识信息。
可选地,实时获取交易系统中在交易过程中产生的交易数据,并确定每个交易数据的标识信息。作为一种示例,所述标识信息可为流水号。也就是说,可在检测到有的交易数据产生时,可获取该交易数据的流水号。
S120,根据标识信息,从N个数据库节点中确定出将要存储交易数据的目标数据库,其中,N个数据库节点可组成一个闭环,每个数据库节点具有各自在闭环上的节点ID,N为大于或等于2的正整数。
可选地,预先将所述N个数据库节点看作一个闭环,每个数据库节点在该闭环上均对应的一个ID编号,例如,假设有10个数据库节点,该10个数据库节点可组成一个闭环,该10个数据库节点在该闭环上对应的ID分别为00、01、02、03…、09。
在本步骤中,可利用哈希取模算法获得该交易数据的标识信息对应的模数,之后,可从所述N个数据库节点中找出节点ID与所述模数一致的数据库节点,然后,将该节点ID与所述模数一致的数据库节点作为所述目标数据库。
作为一种示例,所述标识信息可为流水号。在本示例中,所述根据标识信息,从N个数据库节点中确定出将要存储交易数据的目标数据库的具体实现过程可如下:按照预设规则将所述流水号转换成对应的哈希值,并对所述哈希值按所述N取模,得到对应的模数,之后,从所述N个数据库节点中找出节点ID与所述模数一致的数据库节点,然后,将节点ID与所述模数一致的数据库节点作为所述目标数据库。
S130,检测目标数据库是否处于异常状态。
例如,可检测该目标数据库是否处于异常状态,比如,机器故障或维护等。
S140,若是,则根据目标数据库在闭环上的节点ID,从N个数据库节点除目标数据库节点外的其他数据库节点中选取出备用数据库节点。
可选地,在检测到该目标数据库处于异常状态时,可根据该目标数据库在该闭环上的节点ID,从所述N个数据库节点除目标数据库节点外的其他数据库节点中选取出一个备用数据库节点。
S150,将交易数据存储至备用数据库节点对应的数据库中。
可选地,在选出所述备用数据库节点之后,可将该交易数据存储至该备用数据库节点对应的数据库中。
S160,如果检测目标数据库处于正常状态,则将交易数据存储至目标数据库。
可选地,在检测到该目标数据库处于正常状态时,可将该交易数据直接存储到该目标数据库中。
本发明实施例的交易数据处理方法,可根据交易数据的标识信息从N个数据库节点中确定出将要存储交易数据的目标数据库,其中,N个数据库节点可组成一个闭环,每个数据库节点具有各自在闭环上的节点ID,之后,检测目标数据库是否处于异常状态,若是,则根据目标数据库在闭环上的节点ID,从N个数据库节点除目标数据库节点外的其他数据库节点中选取出备用数据库节点,并将交易数据存储至备用数据库节点对应的数据库中。即通过预先将多个数据库看作一个闭环,在交易系统产生交易数据时,可根据这些交易数据的标识信息从该多个数据库中找出对应的目标数据库,并在检测到该目标数据库处于异常时,可从其他的数据库节点中选出备用数据库节点,并将每个交易数据存储到其备用数据库中,这样,通过交易数据的标识信息将产生的交易数据分散地存储到对应的数据库中,并在该数据库异常时,将该原本的落点的交易数据路由到其他库中,以防止拒绝交易,从而可以在保证交易系统的交易性能的同时,还能够将交易数据及时地存储到数据库中。
图2是根据本发明一个具体实施例的交易数据处理方法的流程图。
如图2所示,该交易数据处理方法可以包括:
S210,获取交易数据的标识信息。作为一种示例,标识信息可为流水号。
S220,根据标识信息,从N个数据库节点中确定出将要存储交易数据的目标数据库,其中,N个数据库节点可组成一个闭环,每个数据库节点具有各自在闭环上的节点ID,N为大于或等于2的正整数。
S230,检测目标数据库是否处于异常状态。
S240,若是,则根据目标数据库在闭环上的节点ID,从N个数据库节点除目标数据库节点外的其他数据库节点中选取M个数据库节点,其中,M为大于或等于2的正整数,且M小于N。
其中,在本发明的实施例中,所述M的取值是根据数据库节点的总个数以及交易系统针对数据库的实际需求而决定的。也就是说,可根据数据库节点的总个数以及交易系统针对数据库的实际需求而决定该M个取值,从而能够当该N个数据库节点中存在三分之一的异常节点时也可以保证交易系统能够正常运行。
在本步骤中,在检测到目标数据库处于异常状态时,可根据该目标数据库在闭环上的节点ID从所述N个数据库节点除该目标数据库节点外的其他数据库节点中选取M个数据库节点。
作为一种示例,如图2所示,所述根据目标数据库在闭环上的节点ID,从N个数据库节点除目标数据库节点外的其他数据库节点中选取M个数据库节点的具体实现过程可包括以下步骤:
S241,根据目标数据库在闭环上的节点ID,从N个数据库节点中找出位于目标数据库节点位置的下一个节点;
S242,从下一个节点开始,找到该下一个节点跨越L个节点的第一位置,并将该第一位置的数据库节点作为第二节点,其中,L为小于N的正整数;
可以理解,在本发明的实施例中,该L的取值决定于N和M的取值,能够保证从N个数据库节点除目标数据库节点外的其他数据库节点中找出M个备用数据库节点,在每次查找时,可通过跨越L个节点来找到一个数据库节点。
S243,从第二节点开始,找到该第二节点跨越L个节点的第二位置,并将该第二位置的数据库节点作为第三节点;
S244,将下一个节点、第二节点和第三节点作为M个数据库节点。
由此,通过上述步骤S241~S244即可从N个数据库节点除目标数据库节点外的其他数据库节点中选取出M个数据库节点。
S250,从M个数据库节点中随机选取一个节点作为备用数据库节点。
在本发明的实施例中,检测所述备用数据库节点是否处于异常状态,如果所述备用数据库节点处于正常状态,则执行步骤S260;如果所述备用数据库节点处于异常状态,则从所述N个数据库节点中找出位于所述下一个节点位置的下一个节点,并将所述位于所述下一个节点位置的下一个节点作为新的下一个节点,并返回执行步骤S242。
也就是说,在从M个数据库节点中随机选取一个节点作为备用数据库节点之后,可判断该备用数据库节点是否处于异常状态,若否,则直接将该交易数据存储至该备用数据库节点对应的数据库中;若是,则需要从所述N个数据库节点中找出位于所述下一个节点位置的下一个节点,并将所述位于所述下一个节点位置的下一个节点作为新的下一个节点,并返回执行步骤S242,即重新从剩下的数据库节点中找出备用数据库节点。其中,在本发明的实施例中,每当选取的备用数据库节点处于异常状态时,从所述下一个节点位置开始继续顺延找到下一组的M个数据库节点进行数据存储的尝试,这样,通过流水号即可推测出该交易数据应存储到哪个数据库,若该数据库存在异常,也可以通过该规律即可方便地推测出该交易数据库应存储到哪一组数据库节点中。
S260,将交易数据存储至备用数据库节点对应的数据库中。
S270,如果检测目标数据库处于正常状态,则将交易数据存储至目标数据库。
本发明实施例的交易数据处理方法,可通过预先将多个数据库看作一个闭环,在交易系统产生交易数据时,可根据这些交易数据的标识信息从该多个数据库中找出对应的目标数据库,并在检测到该目标数据库处于异常时,可从其他的数据库节点中分散的选出M个数据库节点,并从该M个数据库节点中随机选取一个作为该备用数据库节点,并将每个交易数据存储到其备用数据库中,这样,通过交易数据的标识信息将产生的交易数据分散地存储到对应的数据库中,并在该数据库异常时,将该原本的落点的交易数据路由到其他库中,以防止拒绝交易,从而可以在保证交易系统的交易性能的同时,还能够将交易数据及时地存储到数据库中。
为了使得本领域技术人员更加清楚地了解本发明,下面将举例进行说明。
举例而言,以交易系统中有30个数据库节点(即N的取值为30),所述标识信息为流水号为例,如图3a所示,可预先将该30个数据库节点组成一个闭环,每个数据库节点具有各自在该闭环上的节点ID,如00、01、02、03、…、29。当交易系统产生交易数据时,可获取该交易数据的流水号,并利用哈希取模算法将该流水号转换成对应的哈希值,并对该哈希值按30取模,得到对应的模数,比如该模数“05”,之后,可从该30个数据库节点中找出节点ID与该模数“05”一致的数据库节点,即可将该节点ID“05”的数据库节点作为目标数据库,如图3b所示。
在首次尝试选出目标数据库节点“05”时,可检测该目标数据库是否处于正常状态,若是,则直接将交易数据存储到该目标数据库中;如果检测到该目标数据库处于异常状态,则可根据该目标数据库的节点ID“05”,从剩下的数据库节点中选取M个数据库节点。例如,如图3c所示,以M为3为例,首先,可从该30个数据库节点中找出位于该目标数据库节点“05”位置的下一个节点“06”,并从该下一个节点“06”开始,找到该下一个节点跨越L个节点的第一位置,比如以L为9为例,可找到该下一个节点跨越9个节点的第一位置,并将该第一位置的数据库节点“15”作为第二节点,之后,从该第二节点开始,找到该第二节点跨越9个节点的第二位置,并将该第二位置的数据库节点“24”作为第三节点,并将该下一个节点、第二节点和第三节点看作一个组,在该组中随机选取一个节点作为二次落库的位置,如图3d所示,可随机选取节点“24”作为所述备用数据库节点。
可检测该备用数据库节点“24”是否处于正常状态,若是,则将交易数据存储至该备用数据库节点“24”对应的数据库中;若否,则继续顺延找到下一组的三个节点进行尝试。例如,如图3e所示,可从30个数据库节点中找出位于所述下一个节点“06”位置的下一个节点“07”,并将该节点“07”作为新的下一个节点,并重新选出下一组的三个节点,如节点“07”、节点“16”和节点“25”,如果该三个节点中随机选择的备用数据库节点仍处于异常状态,则继续顺延找到下一组的三个节点进行尝试,以此类推尝试9次后,剩余2个节点,比如如图3f所示,节点“03”和节点“04”,在其中选择一个位置作为最后尝试。由此,通过交易数据的流水号将产生的交易数据分散地存储到对应的数据库中,并在该数据库异常时,将该原本的落点的交易数据路由到其他库中,以防止拒绝交易,从而可以在保证交易系统的交易性能的同时,还能够将交易数据及时地存储到数据库中。
与上述几种实施例提供的交易数据处理方法相对应,本申请的一种实施例还提供一种交易数据处理装置,由于本申请实施例提供的交易数据处理装置与上述几种实施例提供的交易数据处理方法相对应,因此在前述交易数据处理方法的实施方式也适用于本实施例提供的交易数据处理装置,在本实施例中不再详细描述。图4是根据本发明一个实施例的交易数据处理装置的结构示意图。如图4所示,该交易数据处理装置400可以包括:获取模块410、目标数据库确定模块420、节点检测模块430、备用节点选取模块440和数据存储模块450。
具体地,获取模块410用于获取交易数据的标识信息。
目标数据库确定模块420用于根据标识信息,从N个数据库节点中确定出将要存储交易数据的目标数据库,其中,N个数据库节点可组成一个闭环,每个数据库节点具有各自在闭环上的节点ID,N为大于或等于2的正整数。
作为一种示例,所述标识信息为流水号。在本示例中,目标数据库确定模块420具体用于:按照预设规则将所述流水号转换成对应的哈希值;对所述哈希值按所述N取模,得到对应的模数;从所述N个数据库节点中找出节点ID与所述模数一致的数据库节点;将节点ID与所述模数一致的数据库节点作为所述目标数据库。
节点检测模块430用于检测目标数据库是否处于异常状态。
备用节点选取模块440用于在检测目标数据库处于异常状态时,根据目标数据库在闭环上的节点ID,从N个数据库节点除目标数据库节点外的其他数据库节点中选取出备用数据库节点。
作为一种示例,备用节点选取模块440具体用于:根据所述目标数据库在所述闭环上的节点ID,从所述N个数据库节点除目标数据库节点外的其他数据库节点中选取M个数据库节点,其中,M为大于或等于2的正整数,且M小于N;从所述M个数据库节点中随机选取一个节点作为所述备用数据库节点。其中,所述M的取值是根据数据库节点的总个数以及交易系统针对数据库的实际需求而决定的。
在本发明的实施例中,备用节点选取模块440具体用于:根据所述目标数据库在所述闭环上的节点ID,从所述N个数据库节点中找出位于所述目标数据库节点位置的下一个节点;从所述下一个节点开始,找到所述下一个节点跨越L个节点的第一位置,并将所述第一位置的数据库节点作为第二节点,其中,L为小于N的正整数;从所述第二节点开始,找到所述第二节点跨越所述L个节点的第二位置,并将所述第二位置的数据库节点作为第三节点;将所述下一个节点、所述第二节点和所述第三节点作为所述M个数据库节点。
数据存储模块450用于将交易数据存储至备用数据库节点对应的数据库中。
在本发明的一个实施例中,该装置还可包括:第二检测模块。其中,第二检测模块用于检测所述备用数据库节点是否处于异常状态。
在本发明的一个实施例中,数据存储模块450还用于在检测所述目标数据库处于正常状态时,将所述交易数据存储至所述目标数据库。
本发明实施例的交易数据处理装置,可通过预先将多个数据库看作一个闭环,在交易系统产生交易数据时,可根据这些交易数据的标识信息从该多个数据库中找出对应的目标数据库,并在检测到该目标数据库处于异常时,可从其他的数据库节点中选出备用数据库节点,并将每个交易数据存储到其备用数据库中,这样,通过交易数据的标识信息将产生的交易数据分散地存储到对应的数据库中,并在该数据库异常时,将该原本的落点的交易数据路由到其他库中,以防止拒绝交易,从而可以在保证交易系统的交易性能的同时,还能够将交易数据及时地存储到数据库中。
为了实现上述实施例,本发明还提出了一种计算机设备。
图5是根据本发明一个实施例的计算机设备的结构示意图。如图5所示,该计算机设备500可以包括:存储器510、处理器520及存储在存储器510上并可在处理器520上运行的计算机程序530,处理器520执行计算机程序530时,实现本发明上述任一实施例所述的交易数据处理方法。
为了实现上述实施例,本发明还提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明上述任一实施例所述的交易数据处理方法。
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种交易数据处理方法,其特征在于,包括:
获取交易数据的标识信息;
根据所述标识信息,从N个数据库节点中确定出将要存储所述交易数据的目标数据库,其中,所述N个数据库节点可组成一个闭环,每个数据库节点具有各自在所述闭环上的节点ID,N为大于或等于2的正整数;
检测所述目标数据库是否处于异常状态;
若是,则根据所述目标数据库在所述闭环上的节点ID,从所述N个数据库节点除目标数据库节点外的其他数据库节点中选取出备用数据库节点;以及
将所述交易数据存储至所述备用数据库节点对应的数据库中。
2.根据权利要求1所述的交易数据处理方法,其特征在于,所述标识信息为流水号;所述根据交易数据的标识信息,从N个数据库节点中确定出将要存储所述交易数据的目标数据库,包括:
按照预设规则将所述流水号转换成对应的哈希值;
对所述哈希值按所述N取模,得到对应的模数;
从所述N个数据库节点中找出节点ID与所述模数一致的数据库节点;
将节点ID与所述模数一致的数据库节点作为所述目标数据库。
3.根据权利要求1所述的交易数据处理方法,其特征在于,所述根据所述目标数据库在所述闭环上的节点ID,从所述N个数据库节点除目标数据库节点外的其他数据库节点中选取出备用数据库节点,包括:
根据所述目标数据库在所述闭环上的节点ID,从所述N个数据库节点除目标数据库节点外的其他数据库节点中选取M个数据库节点,其中,M为大于或等于2的正整数,且M小于N;
从所述M个数据库节点中随机选取一个节点作为所述备用数据库节点。
4.根据权利要求3所述的交易数据处理方法,其特征在于,所述根据所述目标数据库在所述闭环上的节点ID,从所述N个数据库节点除目标数据库节点外的其他数据库节点中选取M个数据库节点,包括:
根据所述目标数据库在所述闭环上的节点ID,从所述N个数据库节点中找出位于所述目标数据库节点位置的下一个节点;
从所述下一个节点开始,找到所述下一个节点跨越L个节点的第一位置,并将所述第一位置的数据库节点作为第二节点,其中,L为小于N的正整数;
从所述第二节点开始,找到所述第二节点跨越所述L个节点的第二位置,并将所述第二位置的数据库节点作为第三节点;
将所述下一个节点、所述第二节点和所述第三节点作为所述M个数据库节点。
5.根据权利要求4所述的交易数据处理方法,其特征在于,还包括:
检测所述备用数据库节点是否处于异常状态;
如果所述备用数据库节点处于正常状态,则执行所述将所述交易数据存储至所述备用数据库节点对应的数据库中的步骤;
如果所述备用数据库节点处于异常状态,则从所述N个数据库节点中找出位于所述下一个节点位置的下一个节点,并将所述位于所述下一个节点位置的下一个节点作为新的下一个节点,并返回执行所述从所述下一个节点开始,找到所述下一个节点跨越L个节点的第一位置,并将所述第一位置的数据库节点作为第二节点的步骤。
6.根据权利要求3至5中任一项所述的交易数据处理方法,其特征在于,所述M的取值是根据数据库节点的总个数以及交易系统针对数据库的实际需求而决定的。
7.根据权利要求1至6中任一项所述的交易数据处理方法,其特征在于,还包括:
如果检测所述目标数据库处于正常状态,则将所述交易数据存储至所述目标数据库。
8.一种交易数据处理装置,其特征在于,包括:
获取模块,用于获取交易数据的标识信息;
目标数据库确定模块,用于根据所述标识信息,从N个数据库节点中确定出将要存储所述交易数据的目标数据库,其中,所述N个数据库节点可组成一个闭环,每个数据库节点具有各自在所述闭环上的节点ID,N为大于或等于2的正整数;
节点检测模块,用于检测所述目标数据库是否处于异常状态;
备用节点选取模块,用于在检测所述目标数据库处于异常状态时,根据所述目标数据库在所述闭环上的节点ID,从所述N个数据库节点除目标数据库节点外的其他数据库节点中选取出备用数据库节点;以及
数据存储模块,用于将所述交易数据存储至所述备用数据库节点对应的数据库中。
9.一种计算机设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现根据权利要求1至7中任一项所述的交易数据处理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现根据权利要求1至7中任一项所述的交易数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811449792.5A CN109947846B (zh) | 2018-11-30 | 2018-11-30 | 交易数据处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811449792.5A CN109947846B (zh) | 2018-11-30 | 2018-11-30 | 交易数据处理方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109947846A true CN109947846A (zh) | 2019-06-28 |
CN109947846B CN109947846B (zh) | 2021-06-15 |
Family
ID=67006397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811449792.5A Active CN109947846B (zh) | 2018-11-30 | 2018-11-30 | 交易数据处理方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109947846B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110717827A (zh) * | 2019-09-03 | 2020-01-21 | 网联清算有限公司 | 数据库的确定方法、装置和交易处理系统 |
CN112817972A (zh) * | 2021-01-22 | 2021-05-18 | 中信百信银行股份有限公司 | 数据存储方法、数据查询方法、装置及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8423515B2 (en) * | 2005-11-30 | 2013-04-16 | Oracle International Corporation | Database system configured for automatic failover with user-limited data loss |
CN103514216A (zh) * | 2012-06-29 | 2014-01-15 | 中国银联股份有限公司 | 基于数据库系统的流水号生成方法 |
CN108460070A (zh) * | 2017-12-21 | 2018-08-28 | 阿里巴巴集团控股有限公司 | 一种基于数据库的数据处理方法、装置及设备 |
CN108595514A (zh) * | 2018-03-23 | 2018-09-28 | 九派天下支付有限公司 | 电子订单处理方法及装置 |
-
2018
- 2018-11-30 CN CN201811449792.5A patent/CN109947846B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8423515B2 (en) * | 2005-11-30 | 2013-04-16 | Oracle International Corporation | Database system configured for automatic failover with user-limited data loss |
CN103514216A (zh) * | 2012-06-29 | 2014-01-15 | 中国银联股份有限公司 | 基于数据库系统的流水号生成方法 |
CN108460070A (zh) * | 2017-12-21 | 2018-08-28 | 阿里巴巴集团控股有限公司 | 一种基于数据库的数据处理方法、装置及设备 |
CN108595514A (zh) * | 2018-03-23 | 2018-09-28 | 九派天下支付有限公司 | 电子订单处理方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110717827A (zh) * | 2019-09-03 | 2020-01-21 | 网联清算有限公司 | 数据库的确定方法、装置和交易处理系统 |
CN110717827B (zh) * | 2019-09-03 | 2022-08-30 | 网联清算有限公司 | 数据库的确定方法、装置和交易处理系统 |
CN112817972A (zh) * | 2021-01-22 | 2021-05-18 | 中信百信银行股份有限公司 | 数据存储方法、数据查询方法、装置及电子设备 |
CN112817972B (zh) * | 2021-01-22 | 2024-08-20 | 中信百信银行股份有限公司 | 数据存储方法、数据查询方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109947846B (zh) | 2021-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106055654B (zh) | 异构数据的整合方法以及装置 | |
CN110472201B (zh) | 基于区块链的文本相似性检测方法及装置、电子设备 | |
EP3321819A1 (en) | Device, method and program for securely reducing an amount of records in a database | |
CN112560114B (zh) | 调用智能合约的方法及装置 | |
CN109726209A (zh) | 日志聚合方法及装置 | |
CN110020542A (zh) | 数据读写方法及装置、电子设备 | |
CN104731816A (zh) | 一种处理异常业务数据的方法和装置 | |
CN107038600A (zh) | 发放权益的方法和装置 | |
CN109947846A (zh) | 交易数据处理方法、装置、计算机设备和存储介质 | |
CN105868878B (zh) | Mac地址的风险识别方法及装置 | |
CN107909234A (zh) | 工作流数据的时限提醒方法、处理方法及其装置、设备 | |
CN105959419A (zh) | 基于一致性树的分布式存储结构的构建方法及系统 | |
CN109189859A (zh) | 区块链网络中的节点初始化方法和装置 | |
Wang et al. | Modeling temporal dynamics of users’ purchase behaviors for next basket prediction | |
CN110362569A (zh) | 数据表的校验方法及装置、电子设备、存储介质 | |
CN109189343A (zh) | 一种元数据落盘方法、装置、设备及计算机可读存储介质 | |
CN108304469A (zh) | 用于字符串模糊匹配的方法和装置 | |
CN110474777A (zh) | 记账节点和区块生成方法 | |
CN110210856A (zh) | 区块链数据处理方法、装置、服务器及存储介质 | |
CN109886795A (zh) | 跨机房分布式对账处理方法及装置 | |
CN112015825B (zh) | 基于区块链的模型登记方法、装置及电子设备 | |
CN109003643A (zh) | 一种数据处理方法及装置 | |
CN112800057B (zh) | 一种指纹表管理方法及装置 | |
US11170025B1 (en) | Systems and methods for improving computational speed of planning by caching optimization in hypercubes | |
CN108446343A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |