数据库动态扩展方法、系统、装置和存储介质与流程

文档序号:16782170发布日期:2019-02-01 19:13阅读:247来源:国知局
数据库动态扩展方法、系统、装置和存储介质与流程

本发明涉及数据处理领域,具体而言,涉及一种数据库动态扩展方法、系统、装置和存储介质。



背景技术:

第三方支付公司与银行系统按照约定的xml规范组装交互数据,利用3des加密技术进行数据加密,再通过http通讯协议进行通讯。xml是计算机所能理解的可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言。3des是对称加密算法改进后的一种加密算法,原来的对称加密算法采用56位的对称密钥,存在安全隐患,3des在此基础上进行改良,采用168位对称密钥,对数据进行了三次对称加密。http是超文本传输协议的缩写,是客户端和服务器端请求和应答的一个标准。

快捷支付业务是在互联网电商、移动支付兴起的背景下,第三方支付公司与银行合作共同开发的一类便捷支付业务。客户只需在第一次支付的时候完成客户信息认证,即在第三方支付公司平台上录入账号、手机、证件号码、姓名等信息,经第三方转发到银行系统完成客户信息认证,在后续的支付过程中,客户无需再输入这些信息,只需在第三方支付平台上输入预留的支付密码便可完成支付。快捷支付在互联网电商、移动支付背景下因其极其便利的客户体验得到广泛的应用,近年来,各商业银行已陆续建成相关系统,就笔者所在银行,其快捷支付系统日交易量已达1亿多笔,占据整个支付业务大头,同时,该行快捷支付业务一直保持着行业第一的水平。巨大的交易量给系统数据库访问带来了巨大的压力,特别是在“双11”等电商促销日,系统数据库更容易出现瓶颈。系统对数据库具有强大的依赖性,一旦数据库出现瓶颈,整个支付流程就既有可能被中断,从而极容易导致账务的不一致性。因此,如何在高并发和系统不中断的情况下,解决数据库瓶颈,是本发明要解决的问题。

在现有技术下,通常通过采用多个数据库表和多张数据库表的方法来减少数据库资源不足带来的影响,但在“双11”这样的高并发情况下,即使是事先分配好的数据库资源也有可能出现吞吐能力不足,受限于成本也不可能为系统分配非常多的数据库。

通常,支付系统都会使用数据库记录支付流水信息,用作退款凭证及重复订单检查依据,然而,其系统性能瓶颈却往往集中在高并发场景下的数据库资源上,一方面记录流水和检查流水的逻辑不能裁剪,另一方面频繁访问数据库却会导致cpu及内存等资源的快速消耗,引起系统响应变慢甚至宕机。以银行快捷支付系统为例,遇到双11等电商大促活动,日均交易量成倍增长,特别是在准点秒杀活动瞬间,数以百万的客户同时在线支付,交易量在极短时间内出现井喷,数据库cpu使用率迅速飙升,sql执行时间变长,最终交易超时甚至失败。最终,客户因为银行系统响应慢而错失秒杀机会,后续不再使用该行相关业务,而银行系统也可能会因为压力过大而出现宕机、业务中断等危险。值得注意的是,此类极端场景每年只会出现一到两次,每次持续时间只有短短的几十分钟,如果支付系统日常就按照极端场景来设计和部署,将会造成资源的巨大浪费。



技术实现要素:

为解决上述技术问题,本发明提供一种数据库动态扩展方法、系统、装置和存储介质,解决当前支付系统维护成本低和资源浪费的问题。

根据本发明实施例的第一方面,提供了一种数据库动态扩展方法,所述方法包括:

配置与已运行系统集群一致的应急数据库资源;

在高并发交易场景发生前,根据所述应急数据库资源配置扩展数据源;

在所述高并发交易场景发生时,按照自定义顺序调整读写配置处理;

在所述高并发交易场景发生后,按照所述扩展数据源与所述运行系统中基础数据源的对应关系,进行数据回导处理。

根据本发明实施例的第二方面,一种数据库动态扩展系统,所述系统包括:

配置模块,用于配置与已运行系统集群一致的应急数据库资源;

扩展模块,用于在高并发交易场景发生前,根据所述应急数据库资源配置扩展数据源;

调整模块,用于在所述高并发交易场景发生时,按照自定义顺序调整读写配置处理;以及

回导模块,用于在所述高并发交易场景发生后,按照所述扩展数据源与所述运行系统中基础数据源的对应关系,进行数据回导处理。

根据本发明实施例的第三方面,提供一种计算机可读存储介质,所述计算机存储介质包含有计算机程序,其中,所述计算机程序在被一个或多个计算机执行时使得所述一个或多个计算机执行如下操作:

所述操作包括如上中任一项所述数据库动态扩展方法所包含的步骤。

根据本发明实施例的第四方面,提供一种数据库动态扩展装置,所述装置包括:

存储器,存储有计算机可读指令;

处理器,执行所述计算机可读指令以执行如上所述的数据库动态扩展方法所包含的步骤。

实施本发明实施例提供的一种数据库动态扩展方法、系统、装置和存储介质,具有以下优点:可实现数据库的数据扩展和降低系统维护成本。

附图说明

图1是本发明实施例的一种数据库动态扩展方法的流程图;

图2是本发明实施例的一种数据库动态扩展系统1的结构示意图。

具体实施方式

为使本发明的实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。

图1是本发明实施例的一种数据库动态扩展方法的流程图,参见图1,所述方法包括:

步骤s1,配置与已运行系统集群一致的应急数据库资源;

步骤s2,在高并发交易场景发生前,根据所述应急数据库资源配置扩展数据源;

步骤s3,在所述高并发交易场景发生时,按照自定义顺序调整读写配置处理;

步骤s4,在所述高并发交易场景发生后,按照所述扩展数据源与所述运行系统中基础数据源的对应关系,进行数据回导处理。

在本发明的实施方式中,所述按照自定义顺序调整读写配置处理包括:按照自定义顺序调整的读配置处理和写配置处理,其中,读配置处理用于控制支付交易重复订单并检查是否查询所述扩展数据源,写配置处理用于控制所述支付交易记录流水并检查是否写入所述扩展数据源。在日常支付集群原有数据库资源(配置为基础数据源)外,增加同构的应急数据库资源,在可预见的高并发场景来临前,提前将其配置为扩展数据源;同时,在应用访问数据库的逻辑中增加“读”、“写”两套配置,其中“读”配置控制支付交易重复订单检查是否查询扩展数据源,而“写”配置控制支付交易记录流水是否写入扩展数据源。在高并发场景发生过程中,按照特定的调整顺序,实现应用访问基础数据源和扩展数据源的无缝切换,既保证重复订单检查逻辑无问题,同时又保证数据库系统压力横向分散到扩展数据源上。在高并发场景结束后,按照一定对应关系,将扩展数据源的流水记录导回至原有数据源(也称基础数据源)中,后续应用配置摘除扩展数据源,数据库回收至应急资源池。

在本发明的实施方式中,所述方法还包括:所述数据回导处理之后包括:调整所述写配置处理,控制程序只访问所述基础数据源;所述应急数据库资源删除所述数据扩展源。

在本发明的实施方式中,所述已运行系统集群包括:由多台服务器和多个数据库组成,每个所述服务器分为多个部署单元,每个所述数据库由多套表结构相同的同构库组成。在实际应用中,设定服务器a日常配置有a、b、c共3个基础数据源,支付交易接入,运行在服务器上的应用程序在记录流水时,按基数3对支付订单号进行取模,进而写入3个数据源中的1个,在重复订单检查时,也按同样的取模逻辑,查询对应数据源表中是否已存在同订单号的成功流水。高并发场景发生前,将有着同样表结构的应急数据库资源配置为d、e、f共3个扩展数据源,此时,应用程序使用的“读”、“写”配置均处于默认值状态,应用程序在获取数据库连接时,不会访问扩展数据源。在实际应用中,可采用如下流程执行:

(1)临近高并发场景,调整应用程序“读”配置,设置为查流水按基数3取模的同时按基数6取模,先后两次访问取模对应的数据源,其中第一次取模只会对应到基础数据源之一,而第二次取模结果,则有可能会对应到扩展数据源。(2)调整应用程序“写”配置,设置为记流水时,获取数据源按基数6取模,之后单位时间内,1/2支付流水会记录到扩展数据源。(3)调整应用程序“读”配置,设置为查流水时,获取数据源按基数6取模,之后单位时间内,1/2的流水查询会访问扩展数据源。(4)高并发交易接入瞬间,应用访问数据库的频率暴增,但可访问的数据库资源已扩展1倍,每台数据库的访问压力也减少为1/2。(5)高并发场景过后,先调整应用程序“读”配置,设置为查流水按基数6取模的同时按基数3取模,先后两次访问取模对应的数据源,其中第一次取模结果有可能对应到扩展数据源,而第二次取模结果,则只会对应到基础数据源。(6)接着调整应用程序“写”配置,设置为记流水只按基数3取模,生效后扩展数据源中流水记录不再新增。将上述步骤中获取数据源按3取模的方法定义为“基础分库规则”,按6取模的方法定义为“扩展分库规则”,应用程序“读”、“写”配置示例如下:

a、“读”配置readswitch:

0-只按基础分库规则,查询基础数据源;

1-同时按基础分库规则和扩展分库规则,分两次先后查询基础数据源和基础数据源+扩展数据源;

2-只按基础分库规则,查询基础数据源+扩展数据源。

b、“写”配置writeswitch:

0-只按基础分库规则,流水信息写入基础数据源;

1-按扩展分库规则,流水信息写入基础数据源+扩展数据源。

另外,在摘除扩展数据源之前,需要将其中的流水记录导入基础数据源中。基于应用程序两次取模基数之间的倍数关系,可直接对库导入,即扩展库d导入基础库a,扩展库e导入基础库b,依次类推。此时交易并发量已经降低到正常平常,控制好回导脚本写数据库的并发量,即可不影响实际交易的运行。

扩展数据源流水回导完成后,调整应用程序“读”配置为0,即查流水只按基础取模规则,访问基础数据源。

本发明通过在高并发时段对数据库的横向扩展和配置特定顺序的读写数据处理,实现数据库的数据扩展和降低系统维护成本。能够在高并发时段,将数据库访问压力横向分散到应急数据库,有效降低单个数据库的系统压力,保证交易访问数据库的响应时间不出现大幅增长,客户发起的支付不会变慢或超时;在高并发场景发生前及发生后,应急数据库资源可实现自由调拨和动态插拔,有效降低企业维护系统运行的成本;应用访问数据库,其“读”、“写”配置按照特定的顺序调整,能实现访问基础数据源和扩展数据源的无缝切换,即保证重复订单检查完备性,又实现记流水的动态扩展。

图2是本发明实施例的一种数据库动态扩展系统1的结构示意图,参见图2,所述系统1包括:

配置模块100,用于配置与已运行系统集群一致的应急数据库资源;

扩展模块200,用于在高并发交易场景发生前,根据所述应急数据库资源配置扩展数据源;

调整模块300,用于在所述高并发交易场景发生时,按照自定义顺序调整读写配置处理;以及

回导模块400,用于在所述高并发交易场景发生后,按照所述扩展数据源与所述运行系统中基础数据源的对应关系,进行数据回导处理。

在本发明的实施方式中,所述按照自定义顺序调整读写配置处理包括:按照自定义顺序调整的读配置处理和写配置处理,其中,读配置处理用于控制支付交易重复订单并检查是否查询所述扩展数据源,写配置处理用于控制所述支付交易记录流水并检查是否写入所述扩展数据源。

在本发明的实施方式中,所述方法还包括:所述数据回导处理之后包括:调整所述写配置处理,控制程序只访问所述基础数据源;所述应急数据库资源删除所述数据扩展源。

在本发明的实施方式中,所述已运行系统集群包括:由多台服务器和多个数据库组成,每个所述服务器分为多个部署单元,每个所述数据库由多套表结构相同的同构库组成。

需要说明的是,所述数据库动态扩展方法的操作包括如上所述的所包含的步骤与上述数据库动态扩展系统的操作方式相同,具体内容在此不再赘述。

另外,本发明还提供一种计算机可读存储介质,所述计算机存储介质包含有计算机程序,所述计算机程序在被一个或多个计算机执行时使得所述一个或多个计算机执行如下操作:所述操作包括如上所述数据库动态扩展方法所包含的步骤,在此不再赘述。需要说明的是,所述计算机可读存储介质可包括例如rom/ram、磁碟、光盘、磁盘、闪存等多种存储介质,用以存储可执行上述计算机程序的存储介质。

另外,本发明还提供一种数据库动态扩展装置,所述装置包括:

存储器,存储有计算机可读指令;

处理器,执行所述计算机可读指令以执行如上所述的数据库动态扩展方法所包含的步骤。需要说明的是,所述装置包括:例如,智能终端、移动设备、笔记本电脑、台式计算机、服务器,或者网络设备等多种装置。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

以上所揭露的仅为本发明的优选实施例而已,当然不能以此来限定本发明的保护范围,因此依本发明权利要求的教导对上述实施例所作的等同变化,仍属于本发明权利要求所涵盖的范围内。

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