掌桥专利:专业的专利平台
掌桥专利
首页

数据库分配方法、装置、系统、设备、介质及产品

文献发布时间:2023-06-19 12:10:19


数据库分配方法、装置、系统、设备、介质及产品

技术领域

本发明实施例涉及数据处理技术领域,尤其涉及一种数据库分配方法、装置、系统、设备、介质及产品。

背景技术

近年来伴随着电子商务迅猛发展,网上消费的需求也逐年递增。用户通过支付机构提交协议支付申请,由支付机构向网联或银联平台发起协议支付申请,平台受理并向付款行转发协议支付申请,由付款行内部的应用服务器集群访问存储有该用户对应的用户签约数据的数据库从而完成协议支付相关处理。网上消费需要银行的支付系统提供基础服务,以处理网上交易时庞大的交易数据流。在每年的某些特定时刻,银行的支付系统由于网上交易数据流过于庞大而导致支付系统的数据库发生宕机现象。一旦银行支付系统的数据库宕机,将对网上支付造成极大的影响。

目前针对支付系统的数据库宕机的处理方式主要是通过设置主、备用两数据库,平时只运转主数据库,在主数据库宕机时,可以启动备用数据库以替代主数据库提供数据处理相关支持。然而,目前由主数据库切换到备用数据库需要较长的时间,导致支付系统的数据处理的恢复流程效率较低。

发明内容

本发明提供一种数据库分配方法、装置、系统、设备、介质及产品,用以解决目前由主数据库切换到备用数据库需要较长的时间,导致支付系统的数据处理的恢复流程效率较低的问题。

本发明实施例第一方面提供一种数据库分配方法,应用于应用负载均衡服务器,所述应用负载均衡服务器分别与前置服务器集群和应用服务器集群通信连接;所述应用服务器集群与数据库集群中对应的数据库通信连接,数据库集群中的每个数据库与其他的至少一个数据库互为主备关系,且互为主备关系的数据库存储有相同的用户签约数据;所述方法包括:

接收信息数据;

若确定所述信息数据为前置服务器集群发送的处理请求报文,则根据所述处理请求报文和预设的集群转发策略将所述处理请求报文转发至对应的应用服务器集群,以使所述应用服务器集群根据接收到的所述处理请求报文访问对应的数据库进行对应的数据处理;

若确定所述信息数据为宕机数据库切换指令,则根据宕机数据库切换指令确定宕机数据库和与所述宕机数据库互为主备关系的备用数据库,在接收到待转发给宕机数据库对应的应用服务器集群的待调整处理请求报文时,将所述待调整处理请求报文转发至所述备用数据库对应的应用服务器集群。

可选的,如上所述的方法,所述处理请求报文包括交易请求报文;所述交易请求报文包括用户卡号信息;

所述根据所述处理请求报文和预设的集群转发策略将所述处理请求报文转发至对应的应用服务器集群,具体用于:

根据所述用户卡号信息确定用户卡号信息中预设位数的随机数;

根据所述随机数和预设的集群转发策略将所述交易请求报文转发至对应的应用服务器集群。

可选的,如上所述的方法,所述根据所述随机数和预设的集群转发策略将所述交易请求报文转发至对应的应用服务器集群之前,还包括:

将随机数的总数量与所述应用服务器集群的数量之间的商确定为集群随机数间隔;

将各所述应用服务器集群进行排序,并根据所述集群随机数间隔和所述随机数的总数量给排序后的应用服务器集群分配对应的随机数转发区间;

所述根据所述随机数和预设的集群转发策略将所述交易请求报文转发至对应的应用服务器集群,包括:

确定交易请求报文中随机数所属的随机数转发区间,并将所述交易请求报文转发至该随机数转发区间对应的应用服务器集群。

可选的,如上所述的方法,所述根据宕机数据库切换指令确定宕机数据库和与所述宕机数据库互为主备关系的备用数据库,包括:

根据用户输入的宕机数据库切换指令确定对应的宕机数据库;

根据宕机数据库与其他数据库的主备关系确定与所述宕机数据库对应的备用数据库。

可选的,如上所述的方法,所述与宕机数据库存在主备关系的数据库数量大于或等于二;

所述根据宕机数据库切换指令确定宕机数据库和与所述宕机数据库互为主备关系的备用数据库,包括:

根据预设的选择策略从与宕机数据库存在主备关系的数据库中选择对应的数据库;

将选择的对应数据库确定为与所述宕机数据库对应的备用数据库。

可选的,如上所述的方法,所述根据宕机数据库切换指令确定宕机数据库和与所述宕机数据库互为主备关系的备用数据库之后,还包括:

删除宕机数据库的随机数转发区间;

修改所述宕机数据库互为主备关系的备用数据库的随机数转发区间为宕机数据库原有的随机数转发区间与所述备用数据库的原有随机数转发区间之和。

可选的,如上所述的方法,所述处理请求报文为前置负载均衡服务器根据预设的分配策略分配至目标前置服务器集群的;所述前置负载均衡服务器的处理请求报文为转发机构的支付清算系统发送的。

可选的,如上所述的方法,所述处理请求报文包括交易流水信息;

所述目标前置服务器集群为前置负载均衡服务器对处理请求报文的交易流水信息进行哈希计算,以获得转发分配值,并根据转发分配值及转发分配值所属的分配值转发区间确定出的;

所述转发分配值是对应哈希值中的后两位数;各前置服务器集群对应的分配值转发区间为前置负载均衡服务器根据集群分配值间隔和所述转发分配值的总数量分配给排序后的前置服务器集群的;所述集群分配值间隔为前置负载均衡服务器将转发分配值的总数量与所述前置服务器集群的数量之间的商确定出来的。

可选的,如上所述的方法,所述前置服务器集群与查询数据库通信连接;所述处理请求报文包括查询请求报文;所述查询请求报文包括交易流水信息且不包括用户卡号信息;

所述应用负载均衡服务器接收的由所述前置服务器集群发送的信息包括查询请求报文和用户卡号信息,该用户卡号信息为前置服务器集群根据所述查询请求报文中的交易流水信息从所述查询数据库中获取对应的用户卡号信息,并将用户卡号信息发送至负载均衡服务器的。

本发明实施例第二方面提供一种数据库分配装置,所述装置位于应用负载均衡服务器中,所述应用负载均衡服务器分别与前置服务器集群和应用服务器集群通信连接;所述应用服务器集群与数据库集群中对应的数据库通信连接,数据库集群中的每个数据库与其他的至少一个数据库互为主备关系,且互为主备关系的数据库存储有相同的用户签约数据;所述装置包括:

接收模块,用于接收信息数据;

数据处理模块,用于若确定所述信息数据为前置服务器集群发送的处理请求报文,则根据所述处理请求报文和预设的集群转发策略将所述处理请求报文转发至对应的应用服务器集群,以使所述应用服务器集群根据接收到的所述处理请求报文访问对应的数据库进行对应的数据处理;

宕机处理模块,用于若确定所述信息数据为宕机数据库切换指令,则根据宕机数据库切换指令确定宕机数据库和与所述宕机数据库互为主备关系的备用数据库,在接收到待转发给宕机数据库对应的应用服务器集群的待调整处理请求报文时,将所述待调整处理请求报文转发至所述备用数据库对应的应用服务器集群。

可选的,如上所述的装置,所述处理请求报文包括交易请求报文;所述交易请求报文包括用户卡号信息;

所述数据处理模块在根据所述处理请求报文和预设的集群转发策略将所述处理请求报文转发至对应的应用服务器集群时,具体用于:

根据所述用户卡号信息确定用户卡号信息中预设位数的随机数;根据所述随机数和预设的集群转发策略将所述交易请求报文转发至对应的应用服务器集群。

可选的,如上所述的装置,所述数据处理模块还用于:

将随机数的总数量与所述应用服务器集群的数量之间的商确定为集群随机数间隔;将各所述应用服务器集群进行排序,并根据所述集群随机数间隔和所述随机数的总数量给排序后的应用服务器集群分配对应的随机数转发区间;

所述数据处理模块在根据所述随机数和预设的集群转发策略将所述交易请求报文转发至对应的应用服务器集群时,具体用于:

确定交易请求报文中随机数所属的随机数转发区间,并将所述交易请求报文转发至该随机数转发区间对应的应用服务器集群。

可选的,如上所述的装置,所述宕机处理模块在根据宕机数据库切换指令确定宕机数据库和与所述宕机数据库互为主备关系的备用数据库时,具体用于:

根据用户输入的宕机数据库切换指令确定对应的宕机数据库;根据宕机数据库与其他数据库的主备关系确定与所述宕机数据库对应的备用数据库。

可选的,如上所述的装置,所述与宕机数据库存在主备关系的数据库数量大于或等于二;

所述宕机处理模块在根据宕机数据库切换指令确定宕机数据库和与所述宕机数据库互为主备关系的备用数据库时,具体用于:

根据预设的选择策略从与宕机数据库存在主备关系的数据库中选择对应的数据库;将选择的对应数据库确定为与所述宕机数据库对应的备用数据库。

可选的,如上所述的装置,所述宕机处理模块还用于:

删除宕机数据库的随机数转发区间;修改所述宕机数据库互为主备关系的备用数据库的随机数转发区间为宕机数据库原有的随机数转发区间与所述备用数据库的原有随机数转发区间之和。

可选的,如上所述的装置,所述处理请求报文为前置负载均衡服务器根据预设的分配策略分配至目标前置服务器集群的;所述前置负载均衡服务器的处理请求报文为转发机构的支付清算系统发送的。

可选的,如上所述的装置,所述处理请求报文包括交易流水信息;

所述目标前置服务器集群为前置负载均衡服务器对处理请求报文的交易流水信息进行哈希计算,以获得转发分配值,并根据转发分配值及转发分配值所属的分配值转发区间确定出的;

所述转发分配值是对应哈希值中的后两位数;各前置服务器集群对应的分配值转发区间为前置负载均衡服务器根据集群分配值间隔和所述转发分配值的总数量分配给排序后的前置服务器集群的;所述集群分配值间隔为前置负载均衡服务器将转发分配值的总数量与所述前置服务器集群的数量之间的商确定出来的。

可选的,如上所述的装置,所述前置服务器集群与查询数据库通信连接;所述处理请求报文包括查询请求报文;所述查询请求报文包括交易流水信息且不包括用户卡号信息;

所述应用负载均衡服务器接收的由所述前置服务器集群发送的信息包括查询请求报文和用户卡号信息,该用户卡号信息为前置服务器集群根据所述查询请求报文中的交易流水信息从所述查询数据库中获取对应的用户卡号信息,并将用户卡号信息发送至负载均衡服务器的。

本发明实施例第三方面提供一种数据库分配系统,包括:数据库集群、应用负载均衡服务器和多个应用服务器集群;

所述数据库集群包括多个数据库,其中,每个数据库与不同的应用服务器集群通信连接,每个数据库与其他的至少一个数据库互为主备关系,且互为主备关系的数据库存储有相同的用户签约数据;所述应用负载均衡服务器分别与前置服务器集群和应用服务器集群通信连接。

可选的,如上所述的系统,还包括:前置服务器集群、查询数据库和前置负载均衡服务器;

所述前置负载均衡服务器分别与转发机构的支付清算系统以及前置服务器集群通信连接;

所述前置服务器集群分别与所述查询数据库和所述应用负载均衡服务器通信连接。

本发明实施例第四方面提供一种电子设备,包括:存储器,处理器;

存储器;用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为由所述处理器执行第一方面任一项所述的数据库分配方法。

本发明实施例第五方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现第一方面任一项所述的数据库分配方法。

本发明实施例第六方面提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面任一项所述的数据库分配方法。

本发明实施例提供的一种数据库分配方法、装置、系统、设备、介质及产品,应用于应用负载均衡服务器,所述应用负载均衡服务器分别与前置服务器集群和应用服务器集群通信连接;所述应用服务器集群与数据库集群中对应的数据库通信连接,数据库集群中的每个数据库与其他的至少一个数据库互为主备关系,且互为主备关系的数据库存储有相同的用户签约数据;所述方法包括:接收信息数据;若确定所述信息数据为前置服务器集群发送的处理请求报文,则根据所述处理请求报文和预设的集群转发策略将所述处理请求报文转发至对应的应用服务器集群,以使所述应用服务器集群根据接收到的所述处理请求报文访问对应的数据库进行对应的数据处理;若确定所述信息数据为宕机数据库切换指令,则根据宕机数据库切换指令确定宕机数据库和与所述宕机数据库互为主备关系的备用数据库,在接收到待转发给宕机数据库对应的应用服务器集群的待调整处理请求报文时,将所述待调整处理请求报文转发至所述备用数据库对应的应用服务器集群。本发明实施例的数据库分配方法,首先接收信息数据,并根据信息数据的类型进行对应的处理。若确定所述信息数据为前置服务器集群发送的处理请求报文,则根据所述处理请求报文和预设的集群转发策略将所述处理请求报文转发至对应的应用服务器集群,从而可以将处理请求报文分配对应的应用服务器集群和数据库。若确定所述信息数据为宕机数据库切换指令,则根据宕机数据库切换指令确定宕机数据库和与所述宕机数据库互为主备关系的备用数据库。由于宕机数据库和与所述宕机数据库互为主备关系的备用数据库都是在运行中的数据库,且都存储有相同的用户签约数据,因而,当出现数据库宕机时,只需要切换下处理请求报文的转发方式即可以更快的恢复数据处理流程,提高了数据处理的恢复流程效率。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1为可以实现本发明实施例的数据库分配方法的场景图;

图2为本发明第一实施例提供的数据库分配方法的流程示意图;

图3为本发明第二实施例提供的数据库分配方法的流程示意图;

图4为本发明第二实施例提供的数据库分配方法的支付架构的流程示意图;

图5为本发明第二实施例提供的数据库分配方法的支付系统的架构示意图;

图6为本发明第二实施例提供的数据库分配方法的主备数据库的示意图;

图7为本发明第三实施例提供的数据库分配系统的结构示意图;

图8为本发明第四实施例提供的数据库分配装置的结构示意图;

图9为本发明第五实施例提供的电子设备的结构示意图。

通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。

为了清楚理解本申请的技术方案,首先对现有技术的方案进行详细介绍。目前的支付系统中多采用oracle(中文为甲骨文)数据库,通过oracle中的同步技术,建立主库和备库,且双方数据实时同步,正常情况下主库提供服务。当主库故障或异常时,切换到备库。当切换到备库时,需要对备库进行检测以探查该备库是否可以使用,切换过程的整体时间比较长,需要5分钟左右。因此,目前由主数据库切换到备用数据库需要较长的时间,导致支付系统的数据处理的恢复流程效率较低。

所以针对现有技术中由主数据库切换到备用数据库需要较长的时间,导致支付系统的数据处理的恢复流程效率较低的问题,发明人在研究中发现,为了解决目前由主数据库切换到备用数据库需要较长的时间,导致支付系统的数据处理的恢复流程效率较低的问题,可以将同时运行的多个数据库建立互为主备关系,从而在某数据库宕掉时,可以立马切换正在运行的互为主备关系的备用数据库,进而提高支付系统的数据处理的恢复流程效率。具体的,首先接收信息数据,并根据信息数据的类型进行对应的处理。若确定信息数据为前置服务器集群发送的处理请求报文,则根据处理请求报文和预设的集群转发策略将处理请求报文转发至对应的应用服务器集群,从而可以将处理请求报文分配对应的应用服务器集群和数据库。若确定信息数据为宕机数据库切换指令,则根据宕机数据库切换指令确定宕机数据库和与宕机数据库互为主备关系的备用数据库。由于宕机数据库和与宕机数据库互为主备关系的备用数据库都是在运行中的数据库,且都存储有相同的用户签约数据,因而,当出现数据库宕机时,只需要切换下处理请求报文的转发方式即可以更快的恢复数据处理流程,提高了数据处理的恢复流程效率。

发明人基于上述的创造性发现,提出了本申请的技术方案。

下面对本发明实施例提供的数据库分配方法的应用场景进行介绍。如图1所示,其中,1为电子设备,2为转发机构的支付清算系统,3为前置均衡服务器,4为前置服务器集群,5为应用服务器集群,6为数据库集群。其中,电子设备1、前置均衡服务器3、前置服务器集群4、应用服务器集群5、数据库集群6为支付系统的部件。电子设备1作为应用负载均衡服务器进行使用。前置服务器集群4包括前置服务器集群a、前置服务器集群b和前置服务器集群c,应用服务器集群5包括应用服务器集群a、应用服务器集群b和应用服务器集群c,数据库集群6包括数据库a、数据库b和数据库c。本发明实施例提供的数据库分配方法对应的应用场景的网络架构中包括:电子设备1、支付清算系统2、前置均衡服务器3、前置服务器集群4、应用服务器集群5和数据库集群6。同时,数据库a和数据库b是存储有相同的用户签约数据的互为主备关系的数据库。应用服务器集群a与数据库a通信连接,应用服务器b与数据库b通信连接,应用服务器c与数据库c通信连接。当支付清算系统接收到用户进行协议支付的处理请求报文时,将处理请求报文转发至支付系统中的前置负载均衡服务器3。由前置负载均衡服务器3将该处理请求报文发送至前置服务器集群4中的其中一个前置服务器集群。假设该处理请求报文由前置服务器集群a转发至电子设备1中,电子设备1根据处理请求报文和预设的集群转发策略将处理请求报文转发至对应的应用服务器集群5。假设处理请求报文转发至应用服务器集群a,则该处理请求报文由应用服务器集群a根据接收到的处理请求报文访问数据库a进行对应的数据处理。此时,若数据库a出现宕机状况,由监控的服务器或者工作人员向电子设备1发送宕机数据库切换指令。电子设备1根据宕机数据库切换指令确定数据库a和与数据库a互为主备关系的数据库b。电子设备1将后续原本要发送至应用服务器集群a-数据库a这条链路的处理请求报文,发送至应用服务器集群b-数据库b链路,以使数据库b替代数据库a进行相关的数据处理。数据库b由于存储有相同的用户签约数据,因而,可以直接替代数据库a的原数据处理功能。在数据库切换后,数据库a可以进行后续的故障检测、故障处理等相关处理,直到数据库a的故障解决后,可以将属于数据库a处理的处理请求报文,再次发送至应用服务器集群a-数据库a链路。

下面结合说明书附图对本发明实施例进行介绍。

图2为本发明第一实施例提供的数据库分配方法的流程示意图,如图2所示,本实施例中,本发明实施例的执行主体为数据库分配装置,该数据库分配装置可以集成在电子设备,如应用负载均衡服务器中。需要说明的是,应用负载均衡服务器分别与前置服务器集群和应用服务器集群通信连接。应用服务器集群与数据库集群中对应的数据库通信连接,数据库集群中的每个数据库与其他的至少一个数据库互为主备关系,且互为主备关系的数据库存储有相同的用户签约数据。则本实施例提供的数据库分配方法包括以下几个步骤:

步骤S101,接收信息数据。

本实施例中,接收的信息数据可以是从前置服务器集群发送的处理请求报文,也可以是从监管服务器或者工作人员输入的宕机数据库切换指令。

步骤S102,若确定信息数据为前置服务器集群发送的处理请求报文,则根据处理请求报文和预设的集群转发策略将处理请求报文转发至对应的应用服务器集群,以使应用服务器集群根据接收到的处理请求报文访问对应的数据库进行对应的数据处理。

本实施例中,处理请求报文一般是由转发机构的支付清算系统发送至支付系统中的前置负载均衡服务器,然后由前置负载均衡服务器按照预设的分配策略,将处理请求报文分配至对应的前置服务器集群,最后经由前置服务器集群对该处理请求报文进行签名验签、敏感信息加解密、身份验证等预处理后,将验证通过的处理请求报文发送至应用负载均衡服务器。在确定信息数据为前置服务器集群发送的处理请求报文后,可以根据处理请求报文和预设的集群转发策略将处理请求报文转发至对应的应用服务器集群,已通过应用服务器集群根据接收到的处理请求报文访问对应的数据库进行对应的数据处理。

步骤S103,若确定信息数据为宕机数据库切换指令,则根据宕机数据库切换指令确定宕机数据库和与宕机数据库互为主备关系的备用数据库,在接收到待转发给宕机数据库对应的应用服务器集群的待调整处理请求报文时,将待调整处理请求报文转发至备用数据库对应的应用服务器集群。

本实施例中,宕机数据库切换指令可以是工作人员在应用负载均衡服务器上输入的,也可以是监管数据库运行情况的监管服务器发送的。通常情况下,在某些要求精密性较高的场景,由工作人员在应用负载均衡服务器上输入宕机数据库切换指令。

用户签约数据指用户授权支付系统对用户的账户中的数据进行处理的签约数据,当数据库中存在用户签约数据时,才能对用户签约数据对应的处理请求报文进行数据处理。假设数据库中存在用户a对应的用户签约数据,而不存在用户b对应的用户签约数据,则该数据库只能对用户a在执行协议支付时产生的处理请求报文进行数据处理,而并不能对用户b在执行协议支付时产生的处理请求报文进行数据处理。因而,存在相同的用户签约数据是互为主备关系数据库的前提。

宕机数据库切换指令中包括宕机对应的数据库标识信息,通过该数据库标识信息可以确定出宕机的是哪个数据库。同时,宕机数据库切换指令也可以包括宕机数据库对应的备用数据库标识信息,即可以通过宕机数据库切换指令确定宕机数据库和与宕机数据库互为主备关系的备用数据库。也可以预先存储有宕机数据库和与宕机数据库互为主备关系的备用数据库之间的主备关系,通过宕机数据库切换指令中宕机对应的数据库标识信息确定出宕机数据库后,根据宕机数据库和与宕机数据库互为主备关系的备用数据库之间的主备关系确定出对应的备用数据库。

在接收到待转发给宕机数据库对应的应用服务器集群的待调整处理请求报文时,待调整处理请求报文指由于宕机数据库出现宕机,而需要调整转发路径的处理请求报文。由于待调整处理请求报文不能转发至宕机数据库对应的应用服务器集群,因而,需要将待调整处理请求报文转发至备用数据库对应的应用服务器集群,从而使备用数据库对应的应用服务器集群结合备用数据库对待调整处理请求报文进行数据处理。

本发明实施例提供的一种数据库分配方法,该方法包括:接收信息数据。若确定信息数据为前置服务器集群发送的处理请求报文,则根据处理请求报文和预设的集群转发策略将处理请求报文转发至对应的应用服务器集群,以使应用服务器集群根据接收到的处理请求报文访问对应的数据库进行对应的数据处理。若确定信息数据为宕机数据库切换指令,则根据宕机数据库切换指令确定宕机数据库和与宕机数据库互为主备关系的备用数据库,在接收到待转发给宕机数据库对应的应用服务器集群的待调整处理请求报文时,将待调整处理请求报文转发至备用数据库对应的应用服务器集群。本发明实施例的数据库分配方法,首先接收信息数据,并根据信息数据的类型进行对应的处理。若确定信息数据为前置服务器集群发送的处理请求报文,则根据处理请求报文和预设的集群转发策略将处理请求报文转发至对应的应用服务器集群,从而可以将处理请求报文分配对应的应用服务器集群和数据库。若确定信息数据为宕机数据库切换指令,则根据宕机数据库切换指令确定宕机数据库和与宕机数据库互为主备关系的备用数据库。由于宕机数据库和与宕机数据库互为主备关系的备用数据库都是在运行中的数据库,且都存储有相同的用户签约数据,因而,当出现数据库宕机时,只需要切换下处理请求报文的转发方式即可以更快的恢复数据处理流程,提高了数据处理的恢复流程效率。

图3为本发明第二实施例提供的数据库分配方法的流程示意图,如图3所示,本实施例提供的数据库分配方法,是在本发明上一实施例提供的数据库分配方法的基础上,对步骤102和103进行了进一步的细化。则本实施例提供的数据库分配方法包括以下步骤。

步骤S201,接收信息数据。

本实施例中,步骤201的实现方式与本发明上一实施例中的步骤101的实现方式类似,在此不再一一赘述。

需要说明的是,处理请求报文包括交易请求报文。交易请求报文包括用户卡号信息。

步骤S202,若确定信息数据为前置服务器集群发送的处理请求报文,则根据用户卡号信息确定用户卡号信息中预设位数的随机数。

本实施例中,用户卡号信息一般用于识别用户账户,比如银行卡中的卡号信息。由于用户账户对应的用户卡号信息是由多个数字组成,该多个数字中存在若干位的随机数。用户卡号信息可以在卡号数字末尾或者中间的某几位设置随机数,如在卡号数字末尾的最后两位设置随机数。则随机数的范围为00-99。

可选的,本实施例中,根据随机数和预设的集群转发策略将交易请求报文转发至对应的应用服务器集群之前,还包括:

将随机数的总数量与应用服务器集群的数量之间的商确定为集群随机数间隔。

将各应用服务器集群进行排序,并根据集群随机数间隔和随机数的总数量给排序后的应用服务器集群分配对应的随机数转发区间。

根据随机数和预设的集群转发策略将交易请求报文转发至对应的应用服务器集群,包括:

确定交易请求报文中随机数所属的随机数转发区间,并将交易请求报文转发至该随机数转发区间对应的应用服务器集群。

本实施例中,随机数的总数量指随机数的数字的总数量,比如两位随机数的总数量为100,同理,如果是三位随机数,则随机数的总数量为1000。由于支付系统日常处理的数据量较大,通常需要较多的应用服务器集群进行数据处理。

应用服务器集群与数据库一一对应,比如应用服务器集群具有应用服务器集群a、应用服务器集群b和应用服务器集群c,则数据库分别对应数据库a、数据库b和数据库c。此时,如果对应用服务器集群进行排序,可以按照应用服务器集群a、应用服务器集群b和应用服务器集群c的顺序进行排序。

假设随机数的总数量为两位随机数的总数量,即总数量为100,应用服务器集群的数量为4,则集群随机数间隔为25。随机数转发区间分别为00-24,25-49,50-74,75-99。

因而,在确定交易请求报文中随机数后,可以确定所属的随机数转发区间,比如该交易请求报文的随机数为25,则对应随机数转发区间为25-49。此时,可以将交易请求报文转发至该随机数转发区间对应的应用服务器集群。

通过设置随机数来划分应用服务器集群的数据处理范围,可以提高应用服务器集群整体处理数据的效率。

步骤S203,根据随机数和预设的集群转发策略将交易请求报文转发至对应的应用服务器集群,以使应用服务器集群根据接收到的处理请求报文访问对应的数据库进行对应的数据处理。

本实施例中,步骤203的实现方式与本发明上一实施例中的步骤102的实现方式类似,在此不再一一赘述。

步骤S204,若确定信息数据为宕机数据库切换指令,则根据用户输入的宕机数据库切换指令确定对应的宕机数据库。

本实施例中,步骤204的实现方式与本发明上一实施例中的步骤103的实现方式类似,在此不再一一赘述。

可选的,本实施例中,与宕机数据库存在主备关系的数据库数量大于或等于二。

根据宕机数据库切换指令确定宕机数据库和与宕机数据库互为主备关系的备用数据库,包括:

根据预设的选择策略从与宕机数据库存在主备关系的数据库中选择对应的数据库。

将选择的对应数据库确定为与宕机数据库对应的备用数据库。

本实施例中,与宕机数据库存在主备关系的数据库数量大于或等于二指互为主备关系的数据库有3个或3个以上。本实施例主要针对数据库数量较多的场景,由于数据库数量较多,则可以将多个数据库设为互为主备关系,从而可以在数据库出现宕机现象时,从多个备用数据库中挑选运行功能较强,处理数据较少的数据库作为替代数据库以支撑宕机数据库所属的数据处理范围。从而减少由于数据库宕机造成的数据处理效率降低的问题。此时,数据库的数量如果为4个,则与宕机数据库存在主备关系的数据库数量可以是两个、三个。预设的选择策略可以是随机挑选备用数据库,也可以是按照当前数据处理的压力大小进行选择,本实施例对此不作限定。

可选的,本实施例中,根据宕机数据库切换指令确定宕机数据库和与宕机数据库互为主备关系的备用数据库之后,还包括:

删除宕机数据库的随机数转发区间。

修改宕机数据库互为主备关系的备用数据库的随机数转发区间为宕机数据库原有的随机数转发区间与备用数据库的原有随机数转发区间之和。

本实施例中,由于宕机数据库不能执行数据处理的相关任务,需要将原本转发至该宕机数据库的处理请求报文转发至对应的备用数据库。因而,需要将宕机数据库的随机数转发区间转移给备用数据库,从而使备用数据库的随机数转发区间为宕机数据库原有的随机数转发区间与备用数据库的原有随机数转发区间之和。比如原本宕机数据库的随机数转发区间为00-24,备用数据库的随机数转发区间为25-49,则合并后备用数据库的随机数转发区间为00-49。

可选的,本实施例中,处理请求报文为前置负载均衡服务器根据预设的分配策略分配至目标前置服务器集群的。前置负载均衡服务器的处理请求报文为转发机构的支付清算系统发送的。

本实施例中,处理请求报文由转发机构的支付清算系统发送至为前置负载均衡服务器,再经由前置负载均衡服务器分配至对应的前置服务器集群,即目标前置服务器集群。

可选的,本实施例中,处理请求报文包括交易流水信息。

目标前置服务器集群为前置负载均衡服务器对处理请求报文的交易流水信息进行哈希计算,以获得转发分配值,并根据转发分配值及转发分配值所属的分配值转发区间确定出的。

转发分配值是对应哈希值中的后两位数。各前置服务器集群对应的分配值转发区间为前置负载均衡服务器根据集群分配值间隔和转发分配值的总数量分配给排序后的前置服务器集群的。集群分配值间隔为前置负载均衡服务器将转发分配值的总数量与前置服务器集群的数量之间的商确定出来的。

本实施例中,用户在进行协议支付的相关操作时,会产生对应的交易流水信息。对该交易流水信息进行哈希计算可以得到对应的哈希值,取哈希值的后两位数作为转发分配值。对前置服务器集群的分配策略与对应用服务器集群的分发策略类似。转发分配值的总数量为100,即从00-99的100个数,假设前置服务器集群的数量为4个,则集群分配值间隔为25,即分配值转发区间分别为00-24,25-49,50-74,75-99。

可选的,本实施例中,前置服务器集群与查询数据库通信连接。处理请求报文包括查询请求报文。查询请求报文包括交易流水信息且不包括用户卡号信息。

应用负载均衡服务器接收的由前置服务器集群发送的信息包括查询请求报文和用户卡号信息,该用户卡号信息为前置服务器集群根据查询请求报文中的交易流水信息从查询数据库中获取对应的用户卡号信息,并将用户卡号信息发送至负载均衡服务器的。

本实施例中,查询数据库存储有交易请求报文中的用户卡号信息和交易流水信息。当进行交易请求报文的处理时,前置服务器集群会将交易请求报文中的用户卡号信息和交易流水信息存储入查询数据库。而在进行查询请求报文的处理时,由于查询请求报文中不具有用户卡号信息,而查询请求报文中的交易流水信息与交易请求报文中的交易流水信息是相同的。因而,前置服务器集群可以根据查询请求报文中的交易流水信息在查询数据库中查询对应的用户卡号信息,以方便应用负载均衡服务器根据用户卡号信息确定该查询报文分发至哪个应用服务器集群。

步骤S205,根据宕机数据库与其他数据库的主备关系确定与宕机数据库对应的备用数据库。

本实施例中,宕机数据库与其他数据库的主备关系可以存储在应用负载均衡服务器中,也可以由宕机数据库切换指令中携带,本实施例对此不作限定。

步骤S206,在接收到待转发给宕机数据库对应的应用服务器集群的待调整处理请求报文时,将待调整处理请求报文转发至备用数据库对应的应用服务器集群。

本实施例中,步骤206的实现方式与本发明上一实施例中的步骤103的实现方式类似,在此不再一一赘述。

本发明实施例提供的一种数据库分配方法,通过用户卡号信息的随机数作为分发处理请求报文的分发策略,从而在出现数据库宕机现象时,可以通过删除宕机数据库的随机数转发区间,以及修改宕机数据库互为主备关系的备用数据库的随机数转发区间为宕机数据库原有的随机数转发区间与备用数据库的原有随机数转发区间之和后,将原本属于宕机数据库处理的处理请求报文转由对应的备用数据库进行处理。因而,只需要切换下处理请求报文的转发方式即可以更快的恢复数据处理流程,提高了数据处理的恢复流程效率。

为了更详细的说明本实施例的方法,下面将以某次处理请求报文的处理流程以及数据库宕掉时的处理过程进行详细说明。

请参阅图4-图6,三个图为了更方面的查看方法的流程,对其中的各个部件的名称进行了缩写。前置负载均衡服务器缩写为前置负载均衡,前置服务器集群缩写为前置集群,应用负载均衡服务器缩写为应用负载均衡,应用服务器集群缩写为应用集群。本实施例的主数据库采用oracle数据库,同时,还增加了每个数据库对应的平时非运行的备用数据库ADG备库1-ADG备库4。Redis、RAC1、RAC2、RAC3、RAC4都是数据库。查询数据库采用了Redis数据库。

如图4所示,协议支付的架构中主要有三个部分,支付机构、网联/银联平台、付款行。用户在完成一次协议支付后,由支付机构根据网联/银联平台的报文规范,将处理请求报文发给网联/银联,然后网联/银联平台将处理请求报文转发给付款行。由付款行进行内部的协议支付付款处理,在完成该处理后,反馈交易回执报文至网联/银联平台,以使网联/银联平台将该交易回执报文转发回支付机构。每一次用户发起的支付相关的处理请求报文中都有唯一的交易流水信息作为标识。

如图5所示,本实施例支付系统的架构主要分为两大模块,模块一是前置集群模块,前置负载均衡服务器用于接收从网联/银联转发过来的处理请求报文,前置集群模块完成签名验签、敏感信息加解密等报文预处理,并且将处理请求报文中的用户卡号信息和交易流水信息缓存到Redis数据库中。以便后续的查询请求报文进来后,能查到原处理请求报文中交易请求报文发往了哪个服务器集群/数据库分片。

表1前置集群模块对应的分配值转发区间表

如表一所示,前置负载均衡服务器在接收到从网联/银联转发过来的处理请求报文后,对交易流水号进行哈希计算,在计算后取计算的数值的最后两位,作为转发分配值。本实施例由于采用四个数据库,以及前置服务器集群也采用四个,分别为前置服务器集群1-4。因而,分配值转发区间如表1所示。根据这两位数选择数据库分片记录路由关系表。

模块二是核心应用模块,核心应用模块包括多个应用服务器集群,本实施例中为4个应用服务器集群,分别为应用服务器集群1-4。签约、支付、退款、付款、查询等所有联机交易的业务逻辑都在该模块进行处理。在应用负载均衡服务器根据用户卡号信息中的两位随机数进行数据库以及应用服务器集群的选择。本系统假设用户卡号信息中如银行卡的最后两位是随机数,应用负载均衡服务器从前置预处理之后的报文中取出用户卡号信息,根据卡号最后两位发往对应的应用服务器集群,从而进行处理请求报文的处理,并把处理请求报文处理的数据存储到对应的数据库中。这里卡号的最后两位是随机号,不要求一定是最后两位,只要是卡号中的两位随机号就行。那么分流规则请见表2。

表2应用服务器集群对应的随机数转发区间表

表1和表2中的服务器集群和数据库RAC可以根据需要横向调整和扩展。

为了实现高可用,我们为每套主库建立“副本库”,当主库故障时,将处理请求报文发往副本库受理。现有的4套主库以两两互备的形式存在,如表3所示,例如数据库RAC1的副本库为数据库RAC2,当故障发生时,首先将处理请求报文发往数据库RAC2,数据库RAC2作为副本库同时受理RAC1和自身的处理请求报文。

在副本库中建立与主库中相同的表结构,同时,存储相同的用户签约数据,使之能同时受理主库和副本库中的业务。

表3主库副本库对应关系表

如图6所示,副本库能够受理主库业务流量的前提条件是在副本库具有主库的用户签约数据。所以在签约和解约发生时,我们将签约数据在主库落地的同时也发往Kafka同步至副本库。签约数据的同步是高可用切换的前提条件。且每个主库都可以额外设置一个平时不运行的备用库ADG备库

在数据库发生宕机后的应急操作需要将随机数转发区间进行从表2到表4的转换,实际只需替换负载均衡服务器上脚本即可,切换后RAC1数据库以及对应的应用服务器集群1不再受理处理请求报文,可进行故障修复。同时,RAC1数据库上的处理请求报文由RAC2数据库承担。

表4应用服务器集群对应的随机数转发区间表

图7为本发明第三实施例提供的数据库分配系统的结构示意图,如图7所示,本实施例还提供一种数据库分配系统,包括:数据库集群、应用负载均衡服务器1和多个应用服务器集群5。

数据库集群6包括多个数据库,其中,每个数据库与不同的应用服务器集群通信连接,每个数据库与其他的至少一个数据库互为主备关系,且互为主备关系的数据库存储有相同的用户签约数据。应用负载均衡服务器1分别与前置服务器集群和应用服务器集群5通信连接。

可选的,本实施例中还包括:前置服务器集群、查询数据库和前置负载均衡服务器。

前置负载均衡服务器分别与转发机构的支付清算系统以及前置服务器集群通信连接。

前置服务器集群分别与查询数据库和应用负载均衡服务器通信连接。

本实施例提供的数据库分配系统可以执行图2-图6所示方法实施例的技术方案,其实现原理和技术效果与图2-图6所示方法实施例类似,在此不再一一赘述。

图8为本发明第四实施例提供的数据库分配装置的结构示意图,如图8所示,本实施例中,数据库分配装置300位于应用负载均衡服务器中,应用负载均衡服务器分别与前置服务器集群和应用服务器集群通信连接。应用服务器集群与数据库集群中对应的数据库通信连接,数据库集群中的每个数据库与其他的至少一个数据库互为主备关系,且互为主备关系的数据库存储有相同的用户签约数据,该数据库分配装置300包括:

接收模块301,用于接收信息数据。

数据处理模块302,用于若确定信息数据为前置服务器集群发送的处理请求报文,则根据处理请求报文和预设的集群转发策略将处理请求报文转发至对应的应用服务器集群,以使应用服务器集群根据接收到的处理请求报文访问对应的数据库进行对应的数据处理。

宕机处理模块303,用于若确定信息数据为宕机数据库切换指令,则根据宕机数据库切换指令确定宕机数据库和与宕机数据库互为主备关系的备用数据库,在接收到待转发给宕机数据库对应的应用服务器集群的待调整处理请求报文时,将待调整处理请求报文转发至备用数据库对应的应用服务器集群。

本实施例提供的数据库分配装置可以执行图2所示方法实施例的技术方案,其实现原理和技术效果与图2所示方法实施例类似,在此不再一一赘述。

同时,本发明提供的数据库分配装置在上一实施例提供的数据库分配装置的基础上,对数据库分配装置300进行了进一步的细化。

可选的,本实施例中,处理请求报文包括交易请求报文。交易请求报文包括用户卡号信息。

数据处理模块302在根据处理请求报文和预设的集群转发策略将处理请求报文转发至对应的应用服务器集群时,具体用于:

根据用户卡号信息确定用户卡号信息中预设位数的随机数。根据随机数和预设的集群转发策略将交易请求报文转发至对应的应用服务器集群。

可选的,本实施例中,数据处理模块302还用于:

将随机数的总数量与应用服务器集群的数量之间的商确定为集群随机数间隔。将各应用服务器集群进行排序,并根据集群随机数间隔和随机数的总数量给排序后的应用服务器集群分配对应的随机数转发区间。

数据处理模块302在根据随机数和预设的集群转发策略将交易请求报文转发至对应的应用服务器集群时,具体用于:

确定交易请求报文中随机数所属的随机数转发区间,并将交易请求报文转发至该随机数转发区间对应的应用服务器集群。

可选的,本实施例中,宕机处理模块303在根据宕机数据库切换指令确定宕机数据库和与宕机数据库互为主备关系的备用数据库时,具体用于:

根据用户输入的宕机数据库切换指令确定对应的宕机数据库。根据宕机数据库与其他数据库的主备关系确定与宕机数据库对应的备用数据库。

可选的,本实施例中,与宕机数据库存在主备关系的数据库数量大于或等于二。

宕机处理模块303在根据宕机数据库切换指令确定宕机数据库和与宕机数据库互为主备关系的备用数据库时,具体用于:

根据预设的选择策略从与宕机数据库存在主备关系的数据库中选择对应的数据库。将选择的对应数据库确定为与宕机数据库对应的备用数据库。

可选的,本实施例中,宕机处理模块303还用于:

删除宕机数据库的随机数转发区间。修改宕机数据库互为主备关系的备用数据库的随机数转发区间为宕机数据库原有的随机数转发区间与备用数据库的原有随机数转发区间之和。

可选的,本实施例中,处理请求报文为前置负载均衡服务器根据预设的分配策略分配至目标前置服务器集群的。前置负载均衡服务器的处理请求报文为转发机构的支付清算系统发送的。

可选的,本实施例中,处理请求报文包括交易流水信息。

目标前置服务器集群为前置负载均衡服务器对处理请求报文的交易流水信息进行哈希计算,以获得转发分配值,并根据转发分配值及转发分配值所属的分配值转发区间确定出的。

转发分配值是对应哈希值中的后两位数。各前置服务器集群对应的分配值转发区间为前置负载均衡服务器根据集群分配值间隔和转发分配值的总数量分配给排序后的前置服务器集群的。集群分配值间隔为前置负载均衡服务器将转发分配值的总数量与前置服务器集群的数量之间的商确定出来的。

可选的,本实施例中,前置服务器集群与查询数据库通信连接。处理请求报文包括查询请求报文。查询请求报文包括交易流水信息且不包括用户卡号信息。

应用负载均衡服务器接收的由前置服务器集群发送的信息包括查询请求报文和用户卡号信息,该用户卡号信息为前置服务器集群根据查询请求报文中的交易流水信息从查询数据库中获取对应的用户卡号信息,并将用户卡号信息发送至负载均衡服务器的。

本实施例提供的数据库分配装置可以执行图2-图6所示方法实施例的技术方案,其实现原理和技术效果与图2-图6所示方法实施例类似,在此不再一一赘述。

根据本发明的实施例,本发明还提供了一种电子设备、一种计算机可读存储介质和一种计算机程序产品。

如图9所示,图9是本发明第五实施例提供的电子设备的结构示意图。电子设备旨在各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。

如图9所示,该电子设备包括:处理器401、存储器402。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理。

存储器402即为本发明所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本发明所提供的数据库分配方法。本发明的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本发明所提供的数据库分配方法。

存储器402作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本发明实施例中的数据库分配方法对应的程序指令/模块(例如,附图8所示的接收模块301、数据处理模块302和宕机处理模块303)。处理器401通过运行存储在存储器402中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据库分配,即实现上述方法实施例中的数据库分配方法。

同时,本实施例还提供一种计算机产品,当该计算机产品中的指令由电子设备的处理器执行时,使得电子设备能够执行上述实施例一至二的数据库分配方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明实施例的其它实施方案。本发明旨在涵盖本发明实施例的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明实施例的一般性原理并包括本发明实施例未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明实施例的真正范围和精神由下面的权利要求书指出。

应当理解的是,本发明实施例并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明实施例的范围仅由所附的权利要求书来限制。

相关技术
  • 数据库分配方法、装置、系统、设备、介质及产品
  • 分布式数据库的节点分配方法、装置、储存介质和设备
技术分类

06120113195558