CN110717827B - 数据库的确定方法、装置和交易处理系统 - Google Patents
数据库的确定方法、装置和交易处理系统 Download PDFInfo
- Publication number
- CN110717827B CN110717827B CN201910827216.8A CN201910827216A CN110717827B CN 110717827 B CN110717827 B CN 110717827B CN 201910827216 A CN201910827216 A CN 201910827216A CN 110717827 B CN110717827 B CN 110717827B
- Authority
- CN
- China
- Prior art keywords
- database
- serial number
- determining
- transaction request
- transaction
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
Abstract
本发明提出一种数据库的确定方法、装置和交易处理系统,其中,方法应用于清算平台,包括:接收第三方支付结构发送的交易请求,交易请求中包含第一流水号;根据第一流水号,确定第一数据库;查询第一数据库为不可用状态,则根据预设规则,对第一流水号进行加密处理,以得到第二流水号;根据第二流水号,确定第二数据库;查询第二数据库为可用状态,将交易请求存入第二数据库。该方法能够实现保证交易请求在剩余可用数据库中的均匀分布。并且,由于无需对数据库进行分组,只要存在一个可用的数据库,即可实现交易请求的正常存储和处理,提升清算平台的容错机制。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种数据库的确定方法、装置和交易处理系统。
背景技术
目前,清算平台通过对已有的数据库(DataBase,简称DB)进行分组,得到多个数据库组,当接收到交易请求时,根据数据库路由方案,将交易请求存入至某一个数据库组中的其中一个数据库。若选择的数据库不可用,则将该交易请求存入至其他数据库组中的数据库。例如,数据库的数量为30个,将数据库分为三组,若根据数据库路由方案,选择的为第一组中的第二个数据库,且该数据库不可用,则可以将该交易请求存入至第二组或第三组中的某一个数据库。
这种方式下,可能造成交易请求在可用数据库中分布极不均匀,造成某一组数据库组中的其中一个数据库过热,从而造成一定的风险性。并且,即使存在可用的数据库,若所有的数据库组中均存在一个不可用的数据库,则将造成接收到的交易请求被拒绝存储和处理。
发明内容
本发明提出一种数据库的确定方法、装置和交易处理系统,以实现保证交易请求在剩余可用数据库中的均匀分布,并且,由于无需对数据库进行分组,只要存在一个可用的数据库,即可实现交易请求的正常存储和处理,提升清算平台的容错机制。
本发明第一方面实施例提出了一种数据库的确定方法,应用于清算平台,包括:
接收第三方支付机构发送的交易请求,所述交易请求中包含第一流水号;
根据所述第一流水号,确定第一数据库;
查询所述第一数据库为不可用状态,则根据预设规则,对所述第一流水号进行加密处理,以得到第二流水号;
根据所述第二流水号,确定第二数据库;
查询所述第二数据库为可用状态,将所述交易请求存入所述第二数据库。
本发明实施例的数据库的确定方法,通过接收第三方支付机构发送的交易请求,交易请求中包含第一流水号,之后,根据第一流水号,确定第一数据库,接着,查询第一数据库为不可用状态,则根据预设规则,对第一流水号进行加密处理,以得到第二流水号,而后,根据第二流水号,确定第二数据库,最后,查询第二数据库为可用状态,将交易请求存入第二数据库。本发明中,由于无需对数据库进行分组,所有的可用数据库均可以存储交易请求,保证交易请求在剩余可用数据库中的均匀分布,可以避免交易请求被存储至同一组中同一个数据库的情况。并且,由于无需对数据库进行分组,只要存在一个可用的数据库,即可实现交易请求的正常存储和处理,提升清算平台的容错机制。
本发明第二方面实施例提出了一种数据库的确定装置,应用于清算平台,包括:
接收模块,用于接收第三方支付机构发送的交易请求,所述交易请求中包含第一流水号;
第一确定模块,用于根据所述第一流水号,确定第一数据库;
处理模块,用于查询所述第一数据库为不可用状态,则根据预设规则,对所述第一流水号进行加密处理,以得到第二流水号;
第二确定模块,用于根据所述第二流水号,确定第二数据库;
存储模块,用于查询所述第二数据库为可用状态,将所述交易请求存入所述第二数据库。
本发明实施例的数据库的确定装置,通过接收第三方支付机构发送的交易请求,交易请求中包含第一流水号,之后,根据第一流水号,确定第一数据库,接着,查询第一数据库为不可用状态,则根据预设规则,对第一流水号进行加密处理,以得到第二流水号,而后,根据第二流水号,确定第二数据库,最后,查询第二数据库为可用状态,将交易请求存入第二数据库。本发明中,由于无需对数据库进行分组,所有的可用数据库均可以存储交易请求,保证交易请求在剩余可用数据库中的均匀分布,可以避免交易请求被存储至同一组中同一个数据库的情况。并且,由于无需对数据库进行分组,只要存在一个可用的数据库,即可实现交易请求的正常存储和处理,提升清算平台的容错机制。
本发明第三方面实施例提出了一种交易处理系统,包括:
第三方支付机构,用于生成交易请求,并向清算平台发送所述交易请求,其中,所述交易请求中包含第一流水号;
所述清算平台,用于接收所述第三方支付机构发送的交易请求,并将所述交易请求转发至对应的银行系统,根据所述第一流水号,确定第一数据库,查询所述第一数据库为不可用状态,则根据预设规则,对所述第一流水号进行加密处理,以得到第二流水号,并根据所述第二流水号,确定第二数据库,查询所述第二数据库为可用状态,将所述交易请求存入所述第二数据库,以及从所述银行系统接收交易数据,将所述交易数据存入所述第二数据库;
所述银行系统,用于对所述交易请求进行处理,生成对应的交易数据,并向所述清算平台发送所述交易数据。
本发明实施例的交易处理系统,通过清算平台接收第三方支付机构发送的交易请求,交易请求中包含第一流水号,之后,根据第一流水号,确定第一数据库,接着,查询第一数据库为不可用状态,则根据预设规则,对第一流水号进行加密处理,以得到第二流水号,而后,根据第二流水号,确定第二数据库,最后,查询第二数据库为可用状态,将交易请求存入第二数据库。本发明中,由于无需对数据库进行分组,所有的可用数据库均可以存储交易请求,保证交易请求在剩余可用数据库中的均匀分布,可以避免交易请求被存储至同一组中同一个数据库的情况。并且,由于无需对数据库进行分组,只要存在一个可用的数据库,即可实现交易请求的正常存储和处理,提升清算平台的容错机制。
本发明第四方面实施例提出了一种计算机设备,包括:处理器和存储器;其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现上述第一方面实施例提出的数据库的确定方法。
本发明第五方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现上述第一方面实施例提出的数据库的确定方法。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例一所提供的数据库的确定方法的流程示意图;
图2为本申请实施例中数据库对应的编码示意图一;
图3为本发明实施例二所提供的数据库的确定方法的流程示意图;
图4为本申请实施例中数据库对应的编码示意图二;
图5为本发明实施例三所提供的数据库的确定装置的结构示意图;
图6为本发明实施例四所提供的数据库的确定装置的结构示意图;
图7为本发明实施例五所提供的交易处理系统的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的数据库的确定方法、装置和交易处理系统。
图1为本发明实施例一所提供的数据库的确定方法的流程示意图。
本发明实施例的数据库的确定方法应用于清算平台,清算平台分别与各第三方支付机构,例如支付宝机构、微信支付机构、翼支付机构等,以及各个银行系统连接,从而即可对各支付机构发送的交易请求进行分库存储并处理。
如图1所示,该数据库的确定方法包括以下步骤:
步骤101,接收第三方支付机构发送的交易请求,交易请求中包含第一流水号。
本发明实施例中,第三方支付机构可以为支付宝、微信、翼支付等支付机构。交易请求是该第三方支付机构发送的,交易请求中包含第三方支付机构的标识,其中,第三方支付机构的标识例如可以为该支付机构的互联网数据中心(Internet Data Center,IDC)编号,或者为其他任一可以区别于其他支付机构的标识信息,对此不作限制。具体地,第三方支付机构的标识可以由清算平台统一分配,以便对其进行管理。
可以理解的是,不同的支付机构向清算平台发送交易请求时,每个支付机构所发送的流水号不同。从而清算平台在获取该交易请求后,可以识别该交易请求具体的发送对象。
本发明实施例中,清算平台在接收到第三方支付结构发送的交易请求后,可以对该交易请求进行解析,确定该交易请求中包含的第一流水号。
步骤102,根据第一流水号,确定第一数据库。
本发明实施例中,在获取第一流水号后,可以根据第一流水号,确定第一数据库。例如,可以根据设定规则和第一流水号,确定第一数据库。
作为一种可能的实现方式,可以根据哈希算法,对第一流水号进行哈希计算,得到第一哈希值,利用第一哈希值对可用数据库的数量取模,得到第一编号,根据第一编号,确定第一数据库。
举例而言,参见图2,可用数据库的数量为30个,各可用数据库的编号分别为:00、01、02、03、…、29,标记第一哈希值为H1,假设第一编码:H1%30=5,即第一数据库为编码05对应的数据库。
步骤103,查询第一数据库为不可用状态,则根据预设规则,对第一流水号进行加密处理,以得到第二流水号。
本发明实施例中,清算平台可以查询第一数据库是否为可用状态。
作为一种可能的实现方式,清算平台可以和第一数据库进行实时交互,若在预设时长内,清算平台未接收到第一数据库的应答响应,则可以确定第一数据库为不可用状态,而若在预设时长内,接收到第一数据库的应答响应,则可以确定第一数据库为可用状态。
作为另一种可能的实现方式,可以通过中台服务监测第一数据库的状态,并将第一数据库的状态信息存储至管理数据库中,从而根据管理数据库中记载的内容,可以确定第一数据库是否为可用状态。
本发明实施例中,当第一数据库为不可用状态时,可以根据预设规则,对第一流水号进行加密处理,以得到第二流水号。
步骤104,根据第二流水号,确定第二数据库。
本发明实施例中,当确定第二流水号后,可以根据第二流水号,确定第二数据库。例如,可以根据设定规则和第二流水号,确定第二数据库。
作为一种可能的实现方式,可以根据哈希算法,对第二流水号进行哈希计算,得到第二哈希值,从可用数据库中,减去第一数据库,得到作为更新后的可用数据库的数量的第一数值,利用第二哈希值对第一数值取模,得到第二编号,根据第二编号,确定第二数据库。
仍以上述例子示例,当编号为05的数据库不可用时,此时,可以对可用数据库的数量进行更新,更新后的可用数据库的数量,即第一数值为29,可以利用第二哈希值对第一数值取模,得到第二编号,根据第二编号,确定第二数据库。
步骤105,查询第二数据库为可用状态,将交易请求存入第二数据库。
本发明实施例中,可以查询第二数据库是否为可用状态,若是,则将交易请求存入第二数据库。本发明中,由于无需对数据库进行分组,所有的可用数据库均可以存储交易请求,保证交易请求在剩余可用数据库中的均匀分布,可以避免交易请求被存储至同一组中同一个数据库的情况。并且,由于无需对数据库进行分组,只要存在一个可用的数据库,即可实现交易请求的正常存储和处理,提升清算平台的容错机制。
需要说明的是,本发明中,在对交易请求进行存储时,是采用冗余方式进行存储或进行读写操作,具体地,将交易请求存储至第二数据库,比如数据库A时,是同时将该交易请求存储至数据库A的主库和备库。在对数据库进行数据查询时,一般情况下,是对该数据库的主库进行查询,若该数据库不可用时,则再对备库进行查询,由此,一方面,可以实现正常提供数据的查询服务;另一方面,当数据库不可用时,该数据库中存储的交易请求无需重新分布,以降低计算开销。
举例而言,在对数据库A中存储的交易请求进行查询时,首先对该数据库A的主库进行查询,若主库不可用,此时,可以查询备库。也就是说,当数据库A不可用时,虽然主库和备库均无法提供写操作,但是,备库还可以提供读操作,以实现正常提供数据的查询服务。
并且,本发明中,在将交易请求存储至第二数据库之后,可以将交易请求与第二数据库之间的映射关系写入预设缓存中,例如可以将交易请求的标识与第二数据库的标识之间的映射关系写入预设缓存。从而在查询该交易请求时,只需从预设缓存中查询上述映射关系,即可确定该交易请求存储在哪个数据库中,操作非常便捷且简单,可以极大地提升查询效率。
本发明实施例的数据库的确定方法,通过接收第三方支付机构发送的交易请求,交易请求中包含第一流水号,之后,根据第一流水号,确定第一数据库,接着,查询第一数据库为不可用状态,则根据预设规则,对第一流水号进行加密处理,以得到第二流水号,而后,根据第二流水号,确定第二数据库,最后,查询第二数据库为可用状态,将交易请求存入第二数据库。本发明中,由于无需对数据库进行分组,所有的可用数据库均可以存储交易请求,保证交易请求在剩余可用数据库中的均匀分布,可以避免交易请求被存储至同一组中同一个数据库的情况。并且,由于无需对数据库进行分组,只要存在一个可用的数据库,即可实现交易请求的正常存储和处理,提升清算平台的容错机制。
进一步地,在接收到交易请求后,清算平台还可以对交易请求进行分析,确定对应的银行系统,将交易请求转发至对应的银行系统,银行系统可以对该交易请求进行对应处理,生成交易数据,并将该交易数据发送至清算平台,相应的,清算平台在接收到交易数据后,可以将交易数据存储至交易请求对应的数据库中。
举例而言,交易请求中可以包括扣减付款行余额信息,根据付款行可以确定对应的银行系统,从而可以将交易请求发送至对应的银行系统,银行系统在接收到交易请求后,可以扣减对应的余额,生成交易数据,并发送至清算平台,清算平台在接收到交易数据后,可以将该交易数据与交易请求进行对应存储,从而根据已存储的数据,可以确定交易请求的状态,例如从未扣款变更为已扣款,或者,从未处理变更为已处理。
需要说明的是,本发明仅以在步骤101之后,将交易请求发送至对应的银行系统进行示例,实际应用时,还可以在将交易请求存入至第二数据库之后,将该交易请求发送至对应的银行系统,在得到银行系统返回的交易数据后,可以利用该交易数据对交易请求的状态进行更新,本申请对此并不作限制。
作为一种可能的实现方式,在对可用数据库的数量进行更新,得到第一数值后,可以对更新后的可用数据库的编号进行更新,利用更新后的编号,来确定第二数据库。或者,还可以无需对更新后的可用数据库的编号进行更新,利用之前的初始编号,也可以确定第二数据库。下面结合实施例二,对上述过程进程详细说明。
图3为本发明实施例二所提供的数据库的确定方法的流程示意图。
如图3所示,该数据库的确定方法可以包括以下步骤:
步骤201,接收第三方支付机构发送的交易请求,交易请求中包含第一流水号。
步骤202,根据第一流水号,确定第一数据库。
步骤203,查询第一数据库是否为可用状态,若是,执行步骤204,若否,执行步骤205。
步骤201至203的执行过程,可以参见上述实施例中步骤101至103的执行过程,在此不做赘述。
步骤204,将交易请求存入第一数据库。
本发明实施例中,当查询第一数据库的状态为可用状态时,可以直接将该交易请求存入至第一数据库。
本发明中,在将交易请求存储至第一数据库之后,可以将交易请求与第一数据库之间的映射关系写入预设缓存中,例如可以将交易请求的标识信息与第一数据库的标识信息之间的映射关系写入预设缓存。从而在查询该交易请求时,只需从预设缓存中查询上述映射关系,即可确定该交易请求存储在哪个数据库,操作非常便捷且简单,可以极大地提升查询效率。
步骤205,根据预设规则,对第一流水号进行加密处理,以得到第二流水号。
本发明实施例中,可以基于现有技术中的任一加密算法,对第一流水号进行加密处理,得到第二流水号,本发明对此并不作限制。从而后续步骤中利用新生成的流水号,进行哈希计算时,新生成的哈希值与之前的哈希值无共性,保证交易请求在剩余可用数据库中的均匀分布。
应当理解的是,利用加密算法,新生成的流水号和之前的流水号之间具有一定的关联性。
作为一种可能的实现方式,加盐处理属于加密的一种方式,可以根据预设规则,对第一流水号进行加盐处理,以得到第二流水号。例如,可以根据预设字符信息,对第一流水号进行拼接处理,得到第二流水号。比如,可以将预设字符信息拼接在第一流水号的头部或者尾部,形成一个新的流水号,新生成的流水号和之前的流水号具有一定的规律性。其中,预设字符信息可以包括文字、数字、字母、符号中的至少一项。
举例而言,以预设字符信息为字母A示例,当第一数据库不可用时,可以在第一流水号的最后拼接一个字母A,得到第二流水号。
步骤206,对第二流水号进行哈希计算,得到第二哈希值。
本发明实施例中,可以基于哈希算法,对第二流水号进行哈希计算,得到第二哈希值。
步骤207,从可用数据库中,减去第一数据库,得到作为更新后的可用数据库的数量的第一数值。
以图2示例,若编号为05的数据库故障,则更新后的可用数据库的数量,即第一数值变为29。
步骤208,利用第二哈希值对第一数值取模,得到第二编号。
步骤209,根据第二编号,确定第二数据库。
作为一种可能的实现方式,在对可用数据库的数量进行更新,得到第一数值后,可以对更新后的可用数据库进行重新编号,利用更新后的编号,来确定第二数据库。
以图2示例,当编号为05的数据库不可用时,此时,参见图4,可以将编号05对应的数据库标记为不可用状态,对更新后的可用数据库进行重新编号,则各可用数据库的编号分别为:00、01、02、03、…、28,即初始编号为06的数据库重新编号后为05,初始编号为07的数据库重新编号为06,…,初始编号为29的数据库重新编号为28,01至04编号的数据库保持不变。
假设第二哈希值%29=9,则新生成的编号为09对应的数据库为第二数据库,即在未更新之前,初始编号为10的数据库为第二数据库。
作为另一种可能的实现方式,还可以无需对更新后的可用数据库进行重新编号,利用之前的初始编号,也可以确定第二数据库。
具体地,可以判断第二编号是否大于第一编号,若第二编号小于第一编号,则将第二编号对应的数据库,作为第二数据库,若第二编号大于第一编号,则对第二编号加一得到更新后的第二编号,将更新后的第二编号对应的数据库作为第二数据库。
举例而言,参见图4,假设第二哈希值%29=4,则编号为04对应的数据库为第二数据库。假设第二哈希值%29=09,由于编号00-09中存在不可用数据库对应的05编号,则可以向后顺延一个数据库,将编号为10对应的数据库,作为第二数据库。
步骤210,查询第二数据库为可用状态,将交易请求存入第二数据库。
本发明实施例中,同样可以查询第二数据库是否为可用状态,若是,则将交易请求存入第二数据库,若否,则根据预设规则,对第二流水号进行加密处理,得到第三流水号,对第三流水号进行哈希计算,得到第三哈希值,并从可用数据库中,减去第一数据库和第二数据库,得到作为更新后的可用数据库的数量的第二数值,例如为28个,利用第三哈希值对第三数值取模,得到第三编号,根据第三编号,确定第二数据库。
具体地,在对可用数据库的数量进行更新,得到第二数值后,可以对更新后的可用数据库进行重新编号,利用更新后的编号,来确定第三数据库。
举例而言,假设第二数据库的编号为09的数据库不可用,则对更新后的可用数据库进行重新编号,则各可用数据库的编号分别为:00、01、02、03、…、27,即初始编号为06的数据库重新编号后为05,初始编号为07的数据库重新编号为06,初始编号为08的数据库重新编号为07,初始编号为10的数据库重新编号为08,初始编号为11的数据库重新编号为09,…,初始编号为29的数据库重新编号为27,01至04编号的数据库保持不变。假设第三哈希值%28=11,则新生成的编号为11对应的数据库为第三数据库,即在未更新之前,初始编号为13的数据库为第三数据库。
或者,还无需对更新后的可用数据库进行重新编号,利用之前的初始编号,也可以确定第三数据库。
具体地,可以判断第三编号是否小于第一编号,若第三编号小于第一编号,则将第三编号对应的数据库,作为第三数据库;若第三编号大于第一编号,且小于第二编号,则将第三编号加一得到更新后的第三编号,将更新后的第三编号对应的数据库作为第三数据库;若第三编号大于第二编号,则将第三编号加二得到更新后的第三编号,将更新后的第三编号对应的数据库作为第三数据库。
同理,可以推得在第三数据库为不可用状态时,如何确定第四数据库,以及在第四数据库为不可用状态时,如何确定第五数据库等等,此处不做赘述。
本发明实施例中,在每次接收到第三方支付机构发送的交易请求,并确定该交易请求待存储至的目标数据库后,可以将交易请求与目标数据库之间的映射关系写入预设缓存。由此,在查询某个交易请求时,只需从预设缓存中查询上述映射关系,即可确定该交易请求存储在哪个数据库中,操作非常便捷且简单,可以极大地提升查询效率。
本发明实施例中,根据不同方式来确定交易请求待存入至的第二数据库,可以提升该方法的灵活性和适用性。
为了实现上述实施例,本发明实施例还提供一种数据库的确定装置。
图5为本发明实施例三所提供的数据库的确定装置的结构示意图。
本发明实施例的数据库的确定装置,应用于清算平台。
如图5所示,该数据库的确定装置包括:接收模块101、第一确定模块102、处理模块103、第二确定模块104以及存储模块105。其中,
接收模块101,用于接收第三方支付机构发送的交易请求,交易请求中包含第一流水号。
第一确定模块102,用于根据第一流水号,确定第一数据库。
作为一种可能的实现方式,第一确定模块102,具体用于:对第一流水号进行哈希计算,得到第一哈希值;利用第一哈希值对可用数据库的数量取模,得到第一编号;根据第一编号,确定第一数据库。
处理模块103,用于查询第一数据库为不可用状态,则根据预设规则,对第一流水号进行加密处理,以得到第二流水号。
第二确定模块104,用于根据第二流水号,确定第二数据库。
作为一种可能的实现方式,第二确定模块104,具体用于:对第二流水号进行哈希计算,得到第二哈希值;从可用数据库中,减去第一数据库,得到作为更新后的可用数据库的数量的第一数值;利用第二哈希值对第一数值取模,得到第二编号;根据第二编号,确定第二数据库。
作为另一种可能的实现方式,第二确定模块104,还用于:对更新后的可用数据库重新编号。
作为又一种可能的实现方式,第二确定模块104,还用于:若第二编号大于第一编号,对第二编号加一得到更新后的第二编号;将更新后的第二编号对应的数据库作为第二数据库。
存储模块105,用于查询第二数据库为可用状态,将交易请求存入第二数据库。
进一步地,作为本发明实施例的一种可能的实现方式,参见图6,在图5所示实施例的基础上,该数据库的确定装置还可以包括:转发模块106。
转发模块106,用于将交易请求转发至对应的银行系统。
接收模块101,还用于接收银行系统发送的交易数据。
存储模块105,还用于将交易数据存入第二数据库。
作为一种可能的实现方式,存储模块105,还用于:查询第一数据库为可用状态,则将交易请求存入第一数据库。
作为一种可能的实现方式,处理模块103,具体用于:根据预设字符信息,对第一流水号进行拼接处理,以得到第二流水号。
作为一种可能的实现方式,存储模块105,还用于:将交易请求与第二数据库之间的映射关系写入预设缓存中。
需要说明的是,前述图1-图4实施例对数据库的确定方法实施例的解释说明也适用于该实施例的数据库的确定装置,此处不再赘述。
本发明实施例的数据库的确定装置,通过接收第三方支付机构发送的交易请求,交易请求中包含第一流水号,之后,根据第一流水号,确定第一数据库,接着,查询第一数据库为不可用状态,则根据预设规则,对第一流水号进行加密处理,以得到第二流水号,而后,根据第二流水号,确定第二数据库,最后,查询第二数据库为可用状态,将交易请求存入第二数据库。本发明中,由于无需对数据库进行分组,所有的可用数据库均可以存储交易请求,保证交易请求在剩余可用数据库中的均匀分布,可以避免交易请求被存储至同一组中同一个数据库的情况。并且,由于无需对数据库进行分组,只要存在一个可用的数据库,即可实现交易请求的正常存储和处理,提升清算平台的容错机制。
为了实现上述实施例,本发明还提出一种交易处理系统。
图7为本申请实施例五所提供的交易处理系统的结构示意图。
如图7所示,图中的连接线表示通信连接,该交易处理系统包括:
第三方支付机构100,用于生成交易请求,并向清算平台200发送交易请求,其中,交易请求中包含第一流水号。
本发明实施例中,第三方支付机构100可以为支付宝、微信、翼支付等支付机构。第三方支付机构100可以响应于用户操作,生成交易请求,例如,用户在购物付款时,第三方支付机构100可以响应于用户操作,生成交易请求,向清算平台200发送交易请求,其中,交易请求中包含第一流水号。
清算平台200,用于接收第三方支付机构100发送的交易请求,并将交易请求转发至对应的银行系统300,根据第一流水号,确定第一数据库,查询第一数据库为不可用状态,则根据预设规则,对第一流水号进行加密处理,以得到第二流水号,并根据第二流水号,确定第二数据库,查询第二数据库为可用状态,将交易请求存入第二数据库,以及从银行系统300接收交易数据,将交易数据存入第二数据库。
银行系统300,用于对交易请求进行处理,生成对应的交易数据,并向清算平台发送交易数据。
需要说明的是,前述图1-图4实施例对数据库的确定方法实施例的解释说明也适用于该实施例的清算平台200,此处不再赘述。
本发明实施例的交易处理系统,通过清算平台接收第三方支付机构发送的交易请求,交易请求中包含第一流水号,之后,根据第一流水号,确定第一数据库,接着,查询第一数据库为不可用状态,则根据预设规则,对第一流水号进行加密处理,以得到第二流水号,而后,根据第二流水号,确定第二数据库,最后,查询第二数据库为可用状态,将交易请求存入第二数据库。本发明中,由于无需对数据库进行分组,所有的可用数据库均可以存储交易请求,保证交易请求在剩余可用数据库中的均匀分布,可以避免交易请求被存储至同一组中同一个数据库的情况。并且,由于无需对数据库进行分组,只要存在一个可用的数据库,即可实现交易请求的正常存储和处理,提升清算平台的容错机制。
为了实现上述实施例,本发明还提出一种计算机设备,包括处理器和存储器;其中,处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于实现本发明上述实施例提出的数据库的确定方法。
为了实现上述实施例,本发明还提出一种计算机程序产品,当计算机程序产品中的指令由处理器执行时,执行本发明上述实施例提出的数据库的确定方法。
为了实现上述实施例,本发明还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前述实施例所述的数据库的确定方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (15)
1.一种数据库的确定方法,应用于清算平台,其特征在于,包括:
接收第三方支付机构发送的交易请求,所述交易请求中包含第一流水号,其中,所述第三方支付机构不同,则所发送的所述第一流水号不同;
根据所述第一流水号,确定第一数据库;
查询所述第一数据库为不可用状态,则根据预设规则,对所述第一流水号进行加密处理,以得到第二流水号;
根据所述第二流水号,确定第二数据库;
查询所述第二数据库为可用状态,将所述交易请求存入所述第二数据库;
将所述交易请求发送至对应的银行系统,并接收所述银行系统发送的交易数据;
利用所述交易数据对所述第二数据库中存储的所述交易请求的状态进行更新;
所述根据所述第二流水号,确定第二数据库,包括:
对所述第二流水号进行哈希计算,得到第二哈希值;
从可用数据库中,减去所述第一数据库,得到作为更新后的可用数据库的数量的第一数值;
利用所述第二哈希值对所述第一数值取模,得到第二编号;
根据所述第二编号,确定所述第二数据库;
其中,所述根据预设规则,对所述第一流水号进行加密处理,以得到第二流水号,包括:
将预设字符信息与所述第一流水号进行拼接处理,以得到所述第二流水号。
2.如权利要求1所述的数据库的确定方法,其特征在于,所述根据所述第一流水号,确定第一数据库,包括:
对所述第一流水号进行哈希计算,得到第一哈希值;
利用所述第一哈希值对可用数据库的数量取模,得到第一编号;
根据所述第一编号,确定所述第一数据库。
3.如权利要求1所述的数据库的确定方法,其特征在于,所述根据所述第二编号,确定第二数据库之前,还包括:
对更新后的可用数据库重新编号。
4.如权利要求2所述的数据库的确定方法,其特征在于,所述根据所述第二编号,确定第二数据库之前,还包括:
若所述第二编号大于所述第一编号,对所述第二编号加一得到更新后的第二编号;
所述根据所述第二编号,确定第二数据库,包括:
将所述更新后的第二编号对应的数据库作为所述第二数据库。
5.如权利要求1所述的数据库的确定方法,其特征在于,所述根据所述第一流水号,确定第一数据库之后,所述方法还包括:
查询所述第一数据库为可用状态,则将所述交易请求存入所述第一数据库。
6.如权利要求1-5中任一所述的数据库的确定方法,其特征在于,所述将所述交易请求存入所述第二数据库之后,还包括:
将所述交易请求与所述第二数据库之间的映射关系写入预设缓存中。
7.一种数据库的确定装置,应用于清算平台,其特征在于,包括:
接收模块,用于接收第三方支付机构发送的交易请求,所述交易请求中包含第一流水号,其中,所述第三方支付机构不同,则所发送的所述第一流水号不同;
第一确定模块,用于根据所述第一流水号,确定第一数据库;
处理模块,用于查询所述第一数据库为不可用状态,则根据预设规则,对所述第一流水号进行加密处理,以得到第二流水号;
第二确定模块,用于根据所述第二流水号,确定第二数据库;
存储模块,用于查询所述第二数据库为可用状态,将所述交易请求存入所述第二数据库;
转发模块,用于将所述交易请求转发至对应的银行系统;
所述接收模块,还用于接收所述银行系统发送的交易数据;
所述存储模块,还用于利用所述交易数据对所述第二数据库中存储的所述交易请求的状态进行更新;
所述第二确定模块,具体用于:
对所述第二流水号进行哈希计算,得到第二哈希值;
从可用数据库中,减去所述第一数据库,得到作为更新后的可用数据库的数量的第一数值;
利用所述第二哈希值对所述第一数值取模,得到第二编号;
根据所述第二编号,确定第二数据库;
其中,所述根据预设规则,对所述第一流水号进行加密处理,以得到第二流水号,包括:
将预设字符信息与所述第一流水号进行拼接处理,以得到所述第二流水号。
8.如权利要求7所述的数据库的确定装置,其特征在于,所述第一确定模块,具体用于:
对所述第一流水号进行哈希计算,得到第一哈希值;
利用所述第一哈希值对可用数据库的数量取模,得到第一编号;
根据所述第一编号,确定所述第一数据库。
9.如权利要求7所述的数据库的确定装置,其特征在于,所述第二确定模块,还用于:
对更新后的可用数据库重新编号。
10.如权利要求8所述的数据库的确定装置,其特征在于,所述第二确定模块,还用于:
若所述第二编号大于所述第一编号,对所述第二编号加一得到更新后的第二编号;
将所述更新后的第二编号对应的数据库作为所述第二数据库。
11.如权利要求7所述的数据库的确定装置,其特征在于,所述存储模块,还用于:
查询所述第一数据库为可用状态,则将所述交易请求存入所述第一数据库。
12.如权利要求7-11中任一所述的数据库的确定装置,其特征在于,所述存储模块,还用于:
将所述交易请求与所述第二数据库之间的映射关系写入预设缓存中。
13.一种交易处理系统,其特征在于,包括:
第三方支付机构,用于生成交易请求,并向清算平台发送所述交易请求,其中,所述交易请求中包含第一流水号,其中,所述第三方支付机构不同,则所述第一流水号不同;
所述清算平台,用于接收所述第三方支付机构发送的交易请求,并将所述交易请求转发至对应的银行系统,根据所述第一流水号,确定第一数据库,查询所述第一数据库为不可用状态,则根据预设规则,对所述第一流水号进行加密处理,以得到第二流水号,并根据所述第二流水号,确定第二数据库,查询所述第二数据库为可用状态,将所述交易请求存入所述第二数据库,以及从所述银行系统接收交易数据,利用所述交易数据对所述第二数据库中存储的所述交易请求的状态进行更新;
所述银行系统,用于对所述交易请求进行处理,生成对应的交易数据,并向所述清算平台发送所述交易数据;
其中,所述根据所述第二流水号,确定第二数据库,包括:
对所述第二流水号进行哈希计算,得到第二哈希值;
从可用数据库中,减去所述第一数据库,得到作为更新后的可用数据库的数量的第一数值;
利用所述第二哈希值对所述第一数值取模,得到第二编号;
根据所述第二编号,确定所述第二数据库;
其中,所述根据预设规则,对所述第一流水号进行加密处理,以得到第二流水号,包括:
将预设字符信息与所述第一流水号进行拼接处理,以得到所述第二流水号。
14.一种交易处理计算机设备,其特征在于,包括处理器和存储器;
其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现如权利要求1-6中任一所述的数据库的确定方法。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-6中任一所述的数据库的确定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910827216.8A CN110717827B (zh) | 2019-09-03 | 2019-09-03 | 数据库的确定方法、装置和交易处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910827216.8A CN110717827B (zh) | 2019-09-03 | 2019-09-03 | 数据库的确定方法、装置和交易处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110717827A CN110717827A (zh) | 2020-01-21 |
CN110717827B true CN110717827B (zh) | 2022-08-30 |
Family
ID=69210309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910827216.8A Active CN110717827B (zh) | 2019-09-03 | 2019-09-03 | 数据库的确定方法、装置和交易处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110717827B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104794226A (zh) * | 2015-04-30 | 2015-07-22 | 北京奇艺世纪科技有限公司 | 基于HBase数据库对数据的写操作方法及装置 |
CN107948152A (zh) * | 2017-11-23 | 2018-04-20 | 腾讯科技(深圳)有限公司 | 信息存储方法、获取方法、装置及设备 |
CN109429517A (zh) * | 2016-02-18 | 2019-03-05 | 利弗莱姆有限公司 | 在数据库表、文本文件和数据馈送中对文本和指纹识别进行加盐 |
CN109947846A (zh) * | 2018-11-30 | 2019-06-28 | 网联清算有限公司 | 交易数据处理方法、装置、计算机设备和存储介质 |
-
2019
- 2019-09-03 CN CN201910827216.8A patent/CN110717827B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104794226A (zh) * | 2015-04-30 | 2015-07-22 | 北京奇艺世纪科技有限公司 | 基于HBase数据库对数据的写操作方法及装置 |
CN109429517A (zh) * | 2016-02-18 | 2019-03-05 | 利弗莱姆有限公司 | 在数据库表、文本文件和数据馈送中对文本和指纹识别进行加盐 |
CN107948152A (zh) * | 2017-11-23 | 2018-04-20 | 腾讯科技(深圳)有限公司 | 信息存储方法、获取方法、装置及设备 |
CN109947846A (zh) * | 2018-11-30 | 2019-06-28 | 网联清算有限公司 | 交易数据处理方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110717827A (zh) | 2020-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11934888B2 (en) | Systems and method for managing memory resources used by smart contracts of a blockchain | |
US7051107B2 (en) | Distributed environment type computer system able to achieve high speed consecutive message communications by service layer | |
US9712327B1 (en) | System and method for remote storage auditing | |
US20150242153A1 (en) | Transferring storage resources between snapshot storage pools and volume storage pools in a distributed network | |
US11250395B2 (en) | Blockchain-based transaction processing methods and apparatuses and electronic devices | |
CN110765076A (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN110163658B (zh) | 虚拟资源数据处理方法、装置、计算机设备和存储介质 | |
JP2021518021A (ja) | データ処理方法、装置及びコンピュータ読み取り可能な記憶媒体 | |
CN113169882A (zh) | 用于区块链的互操作性的系统和方法 | |
CN109144406A (zh) | 分布式存储系统中元数据存储方法、系统及存储介质 | |
US20190229931A1 (en) | Distributed telephone number ledger and register | |
JP5381713B2 (ja) | 仮想マシン向けデータ格納システム、データ格納方法およびデータ格納用プログラム | |
CN108399175B (zh) | 一种数据存储、查询方法及其装置 | |
CN110717827B (zh) | 数据库的确定方法、装置和交易处理系统 | |
JP2007122446A (ja) | データ分散管理システム | |
CN113326503A (zh) | 一种证书管理方法及计算设备 | |
WO2020213226A1 (ja) | 管理システム、管理方法、上位ブロックチェーンの演算装置、及びプログラム | |
CN114513469A (zh) | 分布式系统的流量整形方法、装置和存储介质 | |
CN113269625A (zh) | 一种工单处理方法及装置 | |
KR20220142210A (ko) | 블록체인의 적응적 트랜잭션 처리 방법 및 노드 장치 | |
CN105516344A (zh) | 数据管理系统及业务处理方法 | |
CN110209666B (zh) | 一种数据存储方法及终端设备 | |
CN109670830B (zh) | 一种链上资产下链的系统和方法 | |
CN112015758B (zh) | 产品取码方法、装置、计算机设备和存储介质 | |
CN112712433B (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 |