CN111797074A - 一种数据库连接方法、装置、电子设备和可读存储介质 - Google Patents
一种数据库连接方法、装置、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN111797074A CN111797074A CN202010636159.8A CN202010636159A CN111797074A CN 111797074 A CN111797074 A CN 111797074A CN 202010636159 A CN202010636159 A CN 202010636159A CN 111797074 A CN111797074 A CN 111797074A
- Authority
- CN
- China
- Prior art keywords
- service
- database
- sub
- service module
- module
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012423 maintenance Methods 0.000 claims description 31
- 230000007958 sleep Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 5
- 230000002829 reductive effect Effects 0.000 abstract description 4
- 238000012545 processing Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005034 decoration Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011438 discrete method Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- 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/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- 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/25—Integrating or interfacing systems involving database management systems
-
- 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
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及电子设备领域,尤其涉及一种数据库连接分配的方法、装置、电子设备和可读存储介质,所述方法包括:接收目标应用的业务服务请求并确定所述业务类型;根据所述业务类型,按照预设规则确定服务模块数据库连接线程目标参数。基于本申请技术方案,能够通过目标应用接收的业务请求的类型来确定服务模块连接数据库,对于单库型的服务通过路由划分服务模块来实现降低数据库连接数,对于跨库型服务则通过动态调整分库分表数据库连接数的方式来合理利用数据库连接资源,以在数据库资源确定的基础上支撑更多的应用。
Description
技术领域
本申请涉及数据处理领域,尤其涉及一种数据库连接分配方法、装置、电子设备和可读存储介质。
背景技术
金融电子交易因为交易量过大,交易流程复杂,对交易安全性要求很高,且人们对便捷快速交易的需求不断提升,为了支持高并发、大数据量、高安全性的电子交易,同时也提高交易访问交易服务数据库的效率,目前大部分的金融机构和交易服务均采用数据库的分库分表策略,以满足金融电子交易的上述高要求。其中数据库的连接数的分配是关系电子交易便捷性的关键技术,然而通常不同接口程序的线程数、及其所使用的数据库连接数是相同的但需要支持的业务的数量却在不断增多,因此有效地分配和管理分库分表数据的连接去支持更多的业务量已经成为金融电子交易中的一个关键技术。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一。本申请所采用的技术方案如下:
第一方面,本申请实施例提供一种数据库连接分配方法,应用于包括分库分表数据库的装置,所述方法包括:
接收目标应用的业务服务请求并确定所述业务类型;
根据所述业务类型,按照预设规则确定服务模块数据库连接线程目标参数。
可选地,所述确定所述业务类型包括:
确定所述目标应用接收的业务类型为第一服务业务或第二服务业务;其中,
所述第一服务业务为只需要访问第一分库的业务;
所述第二服务业务为至少需要访问第一和第二分库的业务;
其中所述分库分表数据库至少包括第一分库和第二分库。
可选地,按照预设规则确定服务模块数据库连接线程目标参数包括:
确定所述目标应用接收的业务类型为第一服务业务;
获取所述目标应用的服务模块数据库连接线程数量为T;
将所述服务模块划分为N个子服务模块;
确定与所述目标应用对应的目标子服务模块,其中所述目标子服务模块包括在N个子服务模块中;
确定所述目标应用的子服务数据库连接线程目标参数为T/N。
可选地,根据所述业务类型,按照预设规则关联服务模块数据库连接线程资源包括:
确定所述目标应用接收的业务类型为第二服务业务;
获取所述目标应用的初始数据库连接线程数量为T2;
控制所述服务模块数据库连接线程目标参数为T2;
在执行业务服务请求前,控制所述服务模块数据库连接线程目标参数为T2-1;
在执行业务服务请求后,控制所述服务模块数据库连接线程目标参数为T2+1。
可选地,所述方法还包括:
根据分库分表数据库属性,分别设置服务模块数据库最大空闲连接线程参数为Tmax,最小空闲连接线程参数为Tmin;
检测当前服务模块数据库连接线程目标参数为T;
若所述服务模块数据库连接线程目标参数T大于Tmax,则控制服务模块释放N个数据库连接线程;
若所述服务模块数据库连接线程目标参数T小于Tmin,则控制服务模块创建N个数据库连接线程;
其中所述N可根据自定义设置。
可选地,所述方法还包括:
若所述服务模块数据库连接线程目标参数T为:Tmin<T<Tmax,则所述服务模块休眠。
第二方面,本申请实施例提供了一种数据库连接分配装置,应用于包含有分库分表数据库的电子设备,所述装置包括:接口模块、存储模块和服务模块;其中,
所述接口模块,用于接收目标应用的业务服务请求并确定所述业务类型;
所述服务模块,用于根据所述业务类型,按照预设规则确定服务模块数据库连接线程目标参数;
所述存储模块,用于存储预设规则和分库分表数据库。
可选地,所述接口模块还用于:
确定所述目标应用接收的业务类型为第一服务业务或第二服务业务;其中,
所述第一服务业务为只需要访问第一分库的业务;
所述第二服务业务为至少需要访问第一和第二分库的业务;
其中所述分库分表数据库至少包括第一分库和第二分库。
可选地,所述装置还包括路由模块,当所述接口模块确定所述目标应用接收的业务类型为第一服务业务时;
所述处理器模块用于获取所述目标应用的服务模块数据库连接线程数量为T;
所述路由模块,用于将所述服务模块划分为N个子服务模块,并用于确定与所述目标应用对应的目标子服务模块,其中所述目标子服务模块包括在N个子服务模块中;
所述处理器模块,用于确定所述目标应用的子服务数据库连接线程目标参数为T/N。
可选地,所述处理器模块还包括处理器单元和连接维护单元;
当所述接口模块确定所述目标应用接收的业务类型为第二服务业务时;
所述处理器单元,用于获取所述目标应用的初始数据库连接线程数量为T2;
所述连接维护单元,用于控制所述服务模块数据库连接线程目标参数为T2;
所述连接维护单元,还用于在执行业务服务请求前,控制所述服务模块数据库连接线程目标参数为T2-1;
所述连接维护单元,还用于在执行业务服务请求后,控制所述服务模块数据库连接线程目标参数为T2+1。
可选地,所述服务单元还用于根据分库分表数据库属性,分别设置服务模块数据库最大空闲连接线程参数为Tmax,最小空闲连接线程参数为Tmin;
所述连接维护单元还用于检测当前服务模块数据库连接线程目标参数为T;
若所述服务模块数据库连接线程目标参数T大于Tmax,则所述连接维护单元,还用于控制服务模块释放N个数据库连接线程;
若所述服务模块数据库连接线程目标参数T小于Tmin,则所述连接维护单元还用于控制服务模块创建N个数据库连接线程;
其中所述N可根据自定义设置。
可选地,若所述服务模块数据库连接线程目标参数T为:Tmin<T<Tmax,则所述服务模块休眠。
第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,执行上述数据库连接分配方法。
第四方面,一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据库连接分配的方法。
本申请实施例提供的技术方案带来的有益效果是:本申请实施例提供的数据库连接分配方案,接收目标应用的业务服务请求并确定所述业务类型;根据所述业务类型,按照预设规则确定服务模块数据库连接线程目标参数。本申请提供的数据库连接分配方案,在包括有分库分表数据库的场景下,能够基于目标应用接收的业务请求的类型来确定服务模块连接数据库,对于单库型的服务通过路由划分服务模块来实现降低数据库连接数,对于跨库型服务则通过动态调整分库分表数据库连接数的方式来合理利用数据库连接资源,以在数据库资源确定的基础上支撑更多的应用。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种数据库连接分配方法的流程示意图;
图2为本申请实施例提供的一种数据库连接分配装置的结构示意图;
图3为本申请实施例提供的一种数据库连接分配装置的结构示意图;
图4为本申请实施例提供的一种数据库连接分配装置的结构示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本申请实施例涉及电子设备的数据库连接分配技术,具体为涉及包含有分库分表数据库的电子设备,例如目前金融机构的包含有分表分库数据库的收单系统,为更清楚地介绍本申请实施例,下面介绍一些可能用于实施例的定义、概念或装置:
收单业务:收单业务是指签约银行向商户提供的本外币资金结算服务。
收单系统:承接收单业务,负责接入前端渠道(POS、二维码、线上支付等)提供联机服务,并进行持卡人、商户资金处理。本申请中主要涉及联机服务部分。
收单系统的主要技术功能为处理作为收单机构角色时,处理持卡人账务和商户账务的系统。以支付交易为例,主要流程为接收前端渠道系统的请求报文,根据请求报文计算需要扣减持卡人的金额、入商户账的金额、手续费的金额,然后对相应的账务操作报文往相应的后端持卡人、商户账、手续费系统,完成整个收单联机处理流程。因此收单系统需要有这些功能:接收前端发起的请求,对请求报文进行转换,内部逻辑处理(计算持卡人、商户账、手续费金额),将内部报文转换为后端系统报文,向后端发起请求并获取后端响应结果。
据库中的数据量不一定是可控的,在未进行分库分表的情况下,随着时间和业务的发展,库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作,增删改查的开销也会越来越大;另外,由于无法进行分布式式部署,而一台服务器的资源(CPU、磁盘、内存、IO等)是有限的,最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈,由此数据库分库分表和分布式存储技术就应用而生,其中数据库分表分表是就是把原本存储于一个库的数据分块存储到多个库上,把原本存储于一个表的数据分块存储到多个表上。数据库分库分表日常应用时,常使用连接池等工具,故需将所有数据库都进行连接,对于高并发的应用,数据库还对每个数据库分库创建n条连接(n>=2),由于单个数据库分库连接数存在上限,故多个分库分表数据库集群能支持的应用数量为min(集群中单个数据库连接数上限)/max(每个应用连接单个数据库的连接数)。以1个16C128G的分库和2个32C256G的分库组成的分库分表集群为例,16C128G的分库的最大连接数为6400个,32C256G的分库的最大连接数为12800个,假设每个应用与单个分库的连接数为10个,则该分库分表集群可以支持的最大应用数为6400/10=640个。此场景下,16C128G的DB成为了应用继续扩展的短板,无法支撑大于640个应用的场景,而2个32C256只能使用6400个连接,数据库资源得不到充分的利用。
基于上述现有分库分表数据库利用中的缺陷,本申请提出了一种分库分表数据库资源固定情况下,根据业务合理分配目标应用访问数据库连接资源的方法,也就数据库连接分配方法。
下面将结合附图以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
为使本申请的目的、技术方案和优点更加清楚,图1公开了本申请实施例提供的一种数据库连接分配方法的流程图,如图1所示,所述数据库连接分配方法包括:
S101、接收目标应用的业务服务请求并确定所述业务类型;
S102、根据所述业务类型,按照预设规则确定服务模块数据库连接线程目标参数。
其中,所述服务模块为包括线程、线程组等逻辑工作任务集合,该服务模块加载于设备处理器中。
在本申请实施例中,所述确定所述业务类型包括:确定所述目标应用接收的业务类型为第一服务业务或第二服务业务;所述第一服务业务为只需要访问第一分库的业务,也可称之为单库服务业务,即指应用服务在一个联机交易过程中,只访问分库分表数据库集群中的任意一个分库。所述第二服务业务为至少需要访问第一和第二分库的业务,也可称之为跨库服务业务,即指应用服务在一个联机交易过程中,涉及访问分库分表数据库集群中两个或两个以上的分库。其中所述分库分表数据库至少包括第一分库和第二分库。
进一步地,在本申请可选的第一实施例中,按照预设规则确定服务模块数据库连接线程目标参数包括:
确定所述目标应用接收的业务类型为第一服务业务,并获取所述目标应用的服务模块数据库连接线程数量为T;
将所述服务模块划分为N个子服务模块;
确定与所述目标应用对应的目标子服务模块,其中所述目标子服务模块包括在N个子服务模块中;
确定所述目标应用的子服务数据库连接线程目标参数为T/N。
现结合金融收单系统对可选第一实施例的技术方案进行更详细介绍:在数据库正常启动,目标应用已与数据库连接的情况下,获取分库分表数据库中有n个分库,数据均匀地分布在n个分库的表中;路由分发服务将收单系统的服务模块划分为N个子服务模块,收单系统目标应用所属的所有交易看被均匀分配给N个子服务模块,每个子服务模块可连接n/N个数据库。此时假设目标应用连接单个分库的连接数为T,那么经过上述路由分发服务对服务模块的划分,此时目标应用接收到任一个业务服务请求在执行时通过确定的唯一的子服务模块后连接数变为T/N。下面具体以收单系统接收业务服务请求时的流程为例进行介绍:
步骤1、收单系统的目标应用接收前端系统发起的业务服务请求,确定所述接收的业务服务请求为第一服务业务,并获取所述目标应用的服务模块数据库连接线程数量为T。可选地,所述接收业务请求可通过路由分发服务接收该业务服务请求,并通过请求类型、离散方法等计算出该业务服务请求为第一服务业务,也即单库服务业务。
步骤2、路由分发服务将收单系统服务模块划分为N个子服务模块(N可以被n整除),并通过线程间通讯(消息队列、HTTP等)将业务服务请求发送至于所述目标应用对应的唯一目标子服务模块中。此处,路由分发服务通过对服务模块线程资源的分配,从而保证属于某个数据库的业务请求对应线程可以正确地分配到对应的子服务模块中去执行。
步骤3、目标子服务模块接收业务服务请求创建数据库连接线程处理任务或访问目标应用对应的数据分库;
步骤4、目标子服务模块处理完任务后向路由分发服务返回响应信息,路由分发服务向前端系统反馈响应信息。
进一步地,在本申请第二实施例中,所述根据所述业务类型,按照预设规则关联服务模块数据库连接线程资源包括:
确定所述目标应用接收的业务类型为第二服务业务;
获取所述目标应用的初始数据库连接线程数量为T2;
控制所述服务模块数据库连接线程目标参数为T2;
在执行业务服务请求前,控制所述服务模块数据库连接线程目标参数为T2-1;
在执行业务服务请求后,控制所述服务模块数据库连接线程目标参数为T2+1。
可选地,所述方法还包括:
根据分库分表数据库属性,分别设置服务模块数据库最大空闲连接线程参数为Tmax,最小空闲连接线程参数为Tmin;
检测当前服务模块数据库连接线程目标参数为T;
若所述服务模块数据库连接线程目标参数T大于Tmax,则控制服务模块释放N个数据库连接线程;
若所述服务模块数据库连接线程目标参数T小于Tmin,则控制服务模块创建N个数据库连接线程;
其中所述N可根据自定义设置。
可选地,所述方法还包括:
若所述服务模块数据库连接线程目标参数T为:Tmin<T<Tmax,则所述服务模块休眠。
在本实施例中可以采用连接维护服务和共享内存技术来共同实现对服务模块中目标应用连接数据库的连接线程资源的维护和控制。具体为获取4个参数:目标应用初始连接数T2、最小空闲连接数Tmin,最大空闲连接数Tmax、最大连接数T,配合共享内存等工具对数据库连接进行动态调整。目标应用启动连接数据库时,设定目标应用服务模块数据库连接线程目标参数为T2,即以初始连接数T2创建数据库连接,同时在共享内存中维护一个空闲进程数的参数Tnum,并初始化Tnum为初始连接数T2。在服务模块接收到目标应用的业务服务请求后,在服务模块执行数据库访问线程前,对共享内存中Tnum递减1,即此时设置目标应用的服务模块连接线程目标参数为T2-1,;在服务模块执行数据库访问线程红后,对共享内存中Tnum递增1,即设置目标应耐用的服务模块链接线程目标参数为T2+1。进一步地,通过共享内存判断当前空闲连接数Tnum是否在Tmin和Tmax区间内,如果不是,需要新增连接或释放该连接。通过上述方案即实现了根据实际的服务模块访问数据库线程运行压力,动态调整目标应用与数据库的连接线程数量。
通过第二实施例的技术方案,具有分库分表数据库的设备连接根据应用的负载情况动态调整目标应用数据库目标连接参数,从而使得数据库的连接资源得到充分的利用。
下面具体以服务模块接收业务服务请求时的流程为例对第二实施例进行介绍:在数据库正常启动,目标应用已与数据库连接的情况下,
步骤1、服务模块接收业务服务请求并确定所述目标应用接收的业务类型为第二服务业务,并同时获取所述目标应用的初始数据库连接线程数量为T2;
步骤2、连接维护服务创建共享内存,并根据目标应用初始连接数参数T2创建数据库连接,即控制所述服务模块数据库连接线程目标参数为T2;
步骤3、服务模块监听业务服务请求任务并对共享内存中的空闲连接数Tnum进行递减1,即控制所述服务模块数据库连接线程目标参数为T2-1;
步骤4、服务模块根据业务服务请求创建数据库连接线程处理任务或访问数据库;
步骤5、服务模块监听业务服务请求任务并对共享内存中的空闲连接数Tnum进行递增1,即控制所述服务模块数据库连接线程目标参数为T2+1。
可选地,从步骤3开始,本申请实施例还存在下列可选技术方案,具体为:(提前根据分库分表数据库属性,分别设置服务模块数据库最大空闲连接线程参数为Tmax,最小空闲连接线程参数为Tmin;)
步骤4、服务模块包括服务单元和连接维护单元。连接维护单元处于休眠状态;
步骤5、连接维护单元判断共享内存中的连接总数是否小于最大连接数T;
步骤6、连接维护单元进一步判断共享内存中的空闲连接数Tnum(也即服务模块连接线程目标参数)是否小于最小空闲连接数Tmin,如果是,则创建新的数据库连接(也即若所述服务模块数据库连接线程目标参数T小于Tmin,则控制服务模块创建N个数据库连接线程,N可自定义);如果否,则继续休眠。
步骤7、连接维护单元进一步判断共享内存中的空闲连接数Tnum(也即服务模块连接线程目标参数)是否大于最大空闲连接数Tmax,如果是,则释放部分数据库连接(即若所述服务模块数据库连接线程目标参数T大于Tmax,则控制服务模块释放N个数据库连接线程,N可自定义);如果否,则继续休眠。
在可选实施例中,可以对共享内存设置加锁机制,以确保执行任务时连接线程目标参数确定不被调整。
可选地,当第一实施例和第二实施例中提供的数据库连接分配方法出现异常时,例如路由计算故障或超时,或服务模块获取数据库连接失败或超时,可设定自动跳转采用现有数据库连接分配方案来确保目标应用对数据库的连接的正常创建。
图2示出了本申请实施例提供了一种数据库连接分配装置,应用于包含有分库分表数据库的电子设备,如图2所示,该装置主要可以包括:201接口模块、202存储模块和203服务模块;其中,
所述201接口模块,用于接收目标应用的业务服务请求并确定所述业务类型;
所述203服务模块,用于根据所述业务类型,按照预设规则确定服务模块数据库连接线程目标参数;
所述202存储模块,用于存储预设规则和分库分表数据库。
在可选实施例中,所述接口模块还用于:确定所述目标应用接收的业务类型为第一服务业务或第二服务业务;其中所述第一服务业务为只需要访问第一分库的业务所述第二服务业务为至少需要访问第一和第二分库的业务;其中所述分库分表数据库至少包括第一分库和第二分库。
图3示出了本申请可选实施例提供的一种数据库连接分配装置,如图3所示,所述装置还包括204路由模块,当所述201接口模块确定所述目标应用接收的业务类型为第一服务业务时;所述203处理器模块用于获取所述目标应用的服务模块数据库连接线程数量为T;所述204路由模块,用于将所述服务模块划分为N个子服务模块,并用于确定与所述目标应用对应的目标子服务模块,其中所述目标子服务模块包括在N个子服务模块中;所述处理器模块,用于确定所述目标应用的子服务数据库连接线程目标参数为T/N。上述路由模块与子服务模块通过线程间通讯,如HTTP、消息队列等方式。路由模块的作用为识别前端业务服务请求并将线程进行路由计算后发送至正确的子服务模块中,并接收子服务模块响应,转发回前端。子服务模块负责接收并处理路由分发转发的进程,子服务模块只连接部分分库,减少了数据库连接的使用数量。
图4示出了本申请可选实施例提供的一种数据库连接分配装置,如图4所示,在可选实施例中,数据库连接分配装置的203处理器模块还包括2031处理器单元和2032连接维护单元;当所述201接口模块确定所述目标应用接收的业务类型为第二服务业务时;所述2031处理器单元,用于获取所述目标应用的初始数据库连接线程数量为T2;所述2032连接维护单元,用于控制所述服务模块数据库连接线程目标参数为T2;所述2032连接维护单元,还用于在执行业务服务请求前,控制所述服务模块数据库连接线程目标参数为T2-1;所述2032连接维护单元,还用于在执行业务服务请求后,控制所述服务模块数据库连接线程目标参数为T2+1。本实施例中服务模块中的2031服务单元与2032连接维护单元两者松耦合运行,只通过共享内存共同操作服务模块数据库连接线程目标参数等参数。连接维护单元的作用为创建共享内存、并根据目标应用的初始连接参数设置服务模块数据库连接线程目标参数后动态调整共享内存的连接线程目标参数,即创建新连接或释放旧连接。服务单元的作用为监听任务,获取数据库连接,对共享内存中的连接线程目标参数进行动态调整并进行核心逻辑处理。
在本申请可选实施例中,所述服务单元还用于根据分库分表数据库属性,分别设置服务模块数据库最大空闲连接线程参数为Tmax,最小空闲连接线程参数为Tmin;
所述连接维护单元还用于检测当前服务模块数据库连接线程目标参数为T;
若所述服务模块数据库连接线程目标参数T大于Tmax,则所述连接维护单元,还用于控制服务模块释放N个数据库连接线程;
若所述服务模块数据库连接线程目标参数T小于Tmin,则所述连接维护单元还用于控制服务模块创建N个数据库连接线程;
其中所述N可根据自定义设置。
可选地,若所述服务模块数据库连接线程目标参数T为:Tmin<T<Tmax,则所述服务模块休眠。
可以理解的是,本实施例中的数据库连接分配装置的上述各模块具有实现图1中所示的实施例中的方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述各模块的功能描述具体可以参见图1中所示实施例中的方法的对应描述,在此不再赘述。
本申请实施例提供了一种电子设备,包括处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行本申请任一实施方式中所提供的数据库连接分配方法。
作为一个示例,图5示出了本申请实施例所适用的一种电子设备的结构示意图,如图5所示,该电子设备2000包括:处理器2001和存储器2003。其中,处理器2001和存储器2003相连,如通过总线2002相连。可选的,电子设备2000还可以包括收发器2004。需要说明的是,实际应用中收发器2004不限于一个,该电子设备2000的结构并不构成对本申请实施例的限定。
其中,处理器2001应用于本申请实施例中,用于实现上述方法实施例所示的方法。收发器2004可以包括接收机和发射机,收发器2004应用于本申请实施例中,用于执行时实现本申请实施例的电子设备与其他设备通信的功能。
处理器2001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器2001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线2002可包括一通路,在上述组件之间传送信息。总线2002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线2002可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器2003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
可选的,存储器2003用于存储执行本申请方案的应用程序代码,并由处理器2001来控制执行。处理器2001用于执行存储器2003中存储的应用程序代码,以实现本申请任一实施方式中所提供的数据库连接分配方法。
本申请实施例提供的电子设备,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述方法实施例所示的数据库连接分配方法。
本申请实施例提供的计算机可读存储介质,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供的数据库连接分配方案,接收目标应用的业务服务请求并确定所述业务类型;根据所述业务类型,按照预设规则确定服务模块数据库连接线程目标参数。本申请提供的数据库连接分配方案,在包括有分库分表数据库的场景下,能够基于目标应用接收的业务请求的类型来确定服务模块连接数据库,对于单库型的服务通过路由划分服务模块来实现降低数据库连接数,对于跨库型服务则通过动态调整分库分表数据库连接数的方式来合理利用数据库连接资源,以在数据库资源确定的基础上支撑更多的应用。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (14)
1.一种数据库连接分配方法,应用于包括分库分表数据库的装置,其特征在于,所述方法包括:
接收目标应用的业务服务请求并确定所述业务类型;
根据所述业务类型,按照预设规则确定服务模块数据库连接线程目标参数。
2.根据权利要求1所述的数据库连接分配方法,其特征在于,所述确定所述业务类型包括:
确定所述目标应用接收的业务类型为第一服务业务或第二服务业务;其中,
所述第一服务业务为只需要访问第一分库的业务;
所述第二服务业务为至少需要访问第一和第二分库的业务;
其中所述分库分表数据库至少包括第一分库和第二分库。
3.根据权利要求2所述的数据库连接分配方法,其特征在于,按照预设规则确定服务模块数据库连接线程目标参数包括:
确定所述目标应用接收的业务类型为第一服务业务;
获取所述目标应用的服务模块数据库连接线程数量为T;
将所述服务模块划分为N个子服务模块;
确定与所述目标应用对应的目标子服务模块,其中所述目标子服务模块包括在N个子服务模块中;
确定所述目标应用的子服务数据库连接线程目标参数为T/N。
4.根据权利要求2所述的数据库连接分配方法,其特征在于,根据所述业务类型,按照预设规则关联服务模块数据库连接线程资源包括:
确定所述目标应用接收的业务类型为第二服务业务;
获取所述目标应用的初始数据库连接线程数量为T2;
控制所述服务模块数据库连接线程目标参数为T2;
在执行业务服务请求前,控制所述服务模块数据库连接线程目标参数为T2-1;
在执行业务服务请求后,控制所述服务模块数据库连接线程目标参数为T2+1。
5.根据权利要求1或4所述的数据库连接分配方法,其特征在于,所述方法还包括:
根据分库分表数据库属性,分别设置服务模块数据库最大空闲连接线程参数为Tmax,最小空闲连接线程参数为Tmin;
检测当前服务模块数据库连接线程目标参数为T;
若所述服务模块数据库连接线程目标参数T大于Tmax,则控制服务模块释放N个数据库连接线程;
若所述服务模块数据库连接线程目标参数T小于Tmin,则控制服务模块创建N个数据库连接线程;
其中所述N可根据自定义设置。
6.根据权利要求5所述的数据库连接分配方法,其特征在于,所述方法还包括:
若所述服务模块数据库连接线程目标参数T为:Tmin<T<Tmax,则所述服务模块休眠。
7.一种数据库连接分配装置,应用于包含有分库分表数据库的电子设备,其特征在于,所述装置包括:接口模块、存储模块和服务模块;其中,
所述接口模块,用于接收目标应用的业务服务请求并确定所述业务类型;
所述服务模块,用于根据所述业务类型,按照预设规则确定服务模块数据库连接线程目标参数;
所述存储模块,用于存储预设规则和分库分表数据库。
8.根据权利要求2所述的数据库连接分配装置,其特征在于,所述接口模块还用于:
确定所述目标应用接收的业务类型为第一服务业务或第二服务业务;其中,
所述第一服务业务为只需要访问第一分库的业务;
所述第二服务业务为至少需要访问第一和第二分库的业务;
其中所述分库分表数据库至少包括第一分库和第二分库。
9.根据权利要求8所述的数据库连接分配装置,其特征在于,所述装置还包括路由模块,当所述接口模块确定所述目标应用接收的业务类型为第一服务业务时;
所述处理器模块用于获取所述目标应用的服务模块数据库连接线程数量为T;
所述路由模块,用于将所述服务模块划分为N个子服务模块,并用于确定与所述目标应用对应的目标子服务模块,其中所述目标子服务模块包括在N个子服务模块中;
所述处理器模块,用于确定所述目标应用的子服务数据库连接线程目标参数为T/N。
10.根据权利要求8所述的数据库连接分配装置,其特征在于,所述处理器模块还包括处理器单元和连接维护单元;
当所述接口模块确定所述目标应用接收的业务类型为第二服务业务时;
所述处理器单元,用于获取所述目标应用的初始数据库连接线程数量为T2;
所述连接维护单元,用于控制所述服务模块数据库连接线程目标参数为T2;
所述连接维护单元,还用于在执行业务服务请求前,控制所述服务模块数据库连接线程目标参数为T2-1;
所述连接维护单元,还用于在执行业务服务请求后,控制所述服务模块数据库连接线程目标参数为T2+1。
11.根据权利要求10所述的数据库连接分配装置,其特征在于,所述服务单元还用于根据分库分表数据库属性,分别设置服务模块数据库最大空闲连接线程参数为Tmax,最小空闲连接线程参数为Tmin;
所述连接维护单元还用于检测当前服务模块数据库连接线程目标参数为T;
若所述服务模块数据库连接线程目标参数T大于Tmax,则所述连接维护单元,还用于控制服务模块释放N个数据库连接线程;
若所述服务模块数据库连接线程目标参数T小于Tmin,则所述连接维护单元还用于控制服务模块创建N个数据库连接线程;
其中所述N可根据自定义设置。
12.根据权利要求11所述的数据库连接分配装置,其特征在于,若所述服务模块数据库连接线程目标参数T为:Tmin<T<Tmax,则所述服务模块休眠。
13.一种电子设备,其特征在于,包括处理器和存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,执行权利要求1-6中任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010636159.8A CN111797074A (zh) | 2020-07-03 | 2020-07-03 | 一种数据库连接方法、装置、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010636159.8A CN111797074A (zh) | 2020-07-03 | 2020-07-03 | 一种数据库连接方法、装置、电子设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111797074A true CN111797074A (zh) | 2020-10-20 |
Family
ID=72810196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010636159.8A Pending CN111797074A (zh) | 2020-07-03 | 2020-07-03 | 一种数据库连接方法、装置、电子设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111797074A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112463887A (zh) * | 2020-12-04 | 2021-03-09 | 中国建设银行股份有限公司 | 一种数据处理方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150262127A1 (en) * | 2014-03-17 | 2015-09-17 | Carsten Ziegler | Generation and optimzation of in-memory database business rule logic |
CN106919590A (zh) * | 2015-12-24 | 2017-07-04 | 阿里巴巴集团控股有限公司 | 一种多业务复用处理方法、装置、及系统 |
CN109710400A (zh) * | 2018-12-17 | 2019-05-03 | 平安普惠企业管理有限公司 | 线程资源分组的方法及装置 |
CN109783229A (zh) * | 2018-12-17 | 2019-05-21 | 平安普惠企业管理有限公司 | 线程资源分配的方法及装置 |
CN110490594A (zh) * | 2019-07-18 | 2019-11-22 | 招联消费金融有限公司 | 业务数据处理方法、装置、计算机设备和存储介质 |
-
2020
- 2020-07-03 CN CN202010636159.8A patent/CN111797074A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150262127A1 (en) * | 2014-03-17 | 2015-09-17 | Carsten Ziegler | Generation and optimzation of in-memory database business rule logic |
CN106919590A (zh) * | 2015-12-24 | 2017-07-04 | 阿里巴巴集团控股有限公司 | 一种多业务复用处理方法、装置、及系统 |
CN109710400A (zh) * | 2018-12-17 | 2019-05-03 | 平安普惠企业管理有限公司 | 线程资源分组的方法及装置 |
CN109783229A (zh) * | 2018-12-17 | 2019-05-21 | 平安普惠企业管理有限公司 | 线程资源分配的方法及装置 |
CN110490594A (zh) * | 2019-07-18 | 2019-11-22 | 招联消费金融有限公司 | 业务数据处理方法、装置、计算机设备和存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112463887A (zh) * | 2020-12-04 | 2021-03-09 | 中国建设银行股份有限公司 | 一种数据处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104065636B (zh) | 数据处理方法和系统 | |
CN111091358B (zh) | 多支付渠道的统一处理方法及系统 | |
CN110008018A (zh) | 一种批量任务处理方法、装置及设备 | |
CN111125106B (zh) | 一种跑批任务执行方法、装置、服务器和存储介质 | |
CN109255701B (zh) | 一种网贷业务数据处理方法 | |
CN111343102A (zh) | 流速控制方法、服务端服务器、客户端服务器和系统 | |
CN112132674A (zh) | 一种交易处理方法和装置 | |
CN112866421A (zh) | 基于分布式缓存以及nsq的智能合约运行方法及装置 | |
CN111797074A (zh) | 一种数据库连接方法、装置、电子设备和可读存储介质 | |
CN112541768B (zh) | 集中式汇路选择方法、装置、电子设备及计算机可读存储介质 | |
CN111400283B (zh) | 一种数据处理方法、系统、电子设备及存储介质 | |
CN117541172A (zh) | 基于子账户拆分的热点账户并发处理方法、装置及设备 | |
CN113312359A (zh) | 一种分布式作业进度计算方法、装置和存储介质 | |
CN107194712B (zh) | 共享账户变动信息记录方法及装置、内部账户补账方法及系统 | |
CN113111077A (zh) | 一致性的控制方法、装置、电子设备、介质和程序产品 | |
CN112449021B (zh) | 一种互联网资源的筛选方法及装置 | |
CN116319810A (zh) | 分布式系统的流量控制方法、装置、设备、介质及产品 | |
CN115860952A (zh) | 一种交易处理方法及装置 | |
CN111796854B (zh) | 一种模块热升级的方法、装置、电子设备和可读存储介质 | |
CN110705884B (zh) | 清单处理方法、装置、设备及存储介质 | |
CN111737262B (zh) | 一种数据处理方法及装置 | |
CN111866171B (zh) | 报文处理方法、装置、电子设备和介质 | |
CN116523643A (zh) | 基于客户信息控制系统的联机交易处理方法及装置 | |
CN117635331A (zh) | 一种交易处理方法、装置、设备及介质 | |
CN116630072A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220919 Address after: 25 Financial Street, Xicheng District, Beijing 100033 Applicant after: CHINA CONSTRUCTION BANK Corp. Address before: 25 Financial Street, Xicheng District, Beijing 100033 Applicant before: CHINA CONSTRUCTION BANK Corp. Applicant before: Jianxin Financial Science and Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201020 |
|
RJ01 | Rejection of invention patent application after publication |