CN106354801A - 分布式数据库连接方法和装置 - Google Patents

分布式数据库连接方法和装置 Download PDF

Info

Publication number
CN106354801A
CN106354801A CN201610739951.XA CN201610739951A CN106354801A CN 106354801 A CN106354801 A CN 106354801A CN 201610739951 A CN201610739951 A CN 201610739951A CN 106354801 A CN106354801 A CN 106354801A
Authority
CN
China
Prior art keywords
connection
database
idle
target database
data base
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
Application number
CN201610739951.XA
Other languages
English (en)
Other versions
CN106354801B (zh
Inventor
王军伟
宋威
张学诚
刘璟宇
韩国忠
何涛
余倩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vipshop Guangzhou Software Co Ltd
Original Assignee
Guangzhou Vipshop Information And Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Vipshop Information And Technology Co Ltd filed Critical Guangzhou Vipshop Information And Technology Co Ltd
Priority to CN201610739951.XA priority Critical patent/CN106354801B/zh
Publication of CN106354801A publication Critical patent/CN106354801A/zh
Application granted granted Critical
Publication of CN106354801B publication Critical patent/CN106354801B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems

Abstract

本发明公开了一种分布式数据库连接方法,包括:将多个数据库实例进行分组,其中每组数据库实例中包括至少一个数据库,并配置一个连接池供所有数据库实例的数据库共享;设定所述连接池的指定线程执行空闲连接检查的操作,当接收到客户端发送的向所述连接池申请连接的请求时,根据所述请求及所述空闲连接检查的操作结果返回一个空闲连接给所述客户端。本发明还公开了一种分布式数据库连接装置。本发明实现了多个数据库共用一个连接池,减少了连接池的线程数量,节省了系统资源。

Description

分布式数据库连接方法和装置
技术领域
本发明涉及数据库管理技术领域,尤其涉及一种分布式数据库连接方法和装置。
背景技术
传统的数据库连接池技术有效的降低了数据库系统资源的消耗,同时提高了数据库的访问效率。但是随着互联网技术的快速发展,数据库的访问量和数据量有了爆发式的增长,导致数据库无法满足需求,基于开源数据库研发的分布式数据库可以有效的解决该问题,通过分布在网络中的一组数据库来分散数据库的访问和数据存储。
为了同时兼顾早期尽量少的数据库服务器的投入,以及将来数据库访问量进一步提高后降低数据库拆分的成本和更为平滑的升级,大量分布式数据库都采用了一个数据库实例多个数据库的过度架构,例如,128个数据库分布在16个Mysql数据库实例上,每个数据库实例有8个数据库。使用传统的数据库连接方法将会存在如下问题:
一方面,每个数据库对应一个连接池,假如每个连接池的最大连接数设置为20个,但是当同一个数据库实例的8个数据库中存在冷热数据导致不同时刻访问量差别较大时,访问量大的连接池连接不够用而访问量少的连接池却存在空闲连接而无法被复用,导致资源浪费。
另一方面,每个连接池都有一些固定的后台线程做空闲连接检查、新建连接、关闭连接等维护连接的操作,假如每个连接池有3个线程,那么每个应用程序将有128*3=384个线程,而大部分维护连接的操作只需要少量线程即可完成,导致连接池浪费了大量应用程序的系统资源,降低了应用程序的服务能力。
发明内容
本发明的主要目的在于提供一种分布式数据库连接方法和装置,旨在减少连接池的线程数量,节省系统资源。
为实现上述目的,本发明提供了一种分布式数据库连接方法,包括:
将多个数据库实例进行分组,其中每组数据库实例中包括至少一个数据库,并配置一个连接池供所有数据库实例的数据库共享;
设定所述连接池的指定线程执行空闲连接检查的操作,当接收到客户端发送的向所述连接池申请连接的请求时,根据所述请求及所述空闲连接检查的操作结果返回一个空闲连接给所述客户端。
可选地,所述请求包括目标数据库名称及数据库实例名称,所述当接收到客户端发送的向所述连接池申请连接的请求时,根据所述请求及所述空闲连接检查的操作结果返回一个空闲连接给所述客户端包括:
当接收到客户端发送的向所述连接池申请连接的请求时,根据所述数据库实例名称查找目标数据库实例,并根据所述目标数据库名称在所述目标数据库实例中获取目标数据库;
判断所述目标数据库是否存在空闲连接;
若所述目标数据库存在空闲连接,则返回一个空闲连接给所述客户端。
可选地,所述判断所述目标数据库是否存在空闲连接之后包括:
当所述目标数据库不存在空闲连接时,侦测与所述目标数据库在同一数据库实例组别内的其他数据库是否存在空闲连接;
若是,则返回一个空闲连接给所述客户端,并将所述空闲连接对应的所述数据库的名称,修改为所述目标数据库的名称。
可选地,所述侦测与所述目标数据库在同一数据库实例组别内的其他数据库是否存在空闲连接之后包括:
当与所述目标数据库在同一数据库实例组别内的其他数据库不存在空闲连接时,设定所述连接池的固定线程执行异步建立连接操作,根据所述异步建立连接操作在所述目标数据库下创建一个新的连接,并将所述新的连接返回给所述客户端。
可选地,所述分布式数据库连接方法还包括:
当所述客户端根据得到目标数据库的指定连接完成执行数据库操作后,控制所述客户端将所述指定连接归还至所述连接池,并将所述指定连的接状态设置为空闲连接状态。
此外,为实现上述目的,本发明还提供了一种分布式数据库连接装置,包括:
配置模块,用于将多个数据库实例进行分组,其中每组数据库实例中包括至少一个数据库,并配置一个连接池供所有数据库实例的数据库共享;
连接模块,用于设定所述连接池的指定线程执行空闲连接检查的操作,当接收到客户端发送的向所述连接池申请连接的请求时,根据所述请求及所述空闲连接检查的操作结果返回一个空闲连接给所述客户端。
可选地,所述请求包括目标数据库名称及数据库实例名称,所述连接模块包括:
获取单元,用于当接收到客户端发送的向所述连接池申请连接的请求时,根据所述数据库实例名称查找目标数据库实例,并根据所述目标数据库名称在所述目标数据库实例中获取目标数据库;
判断单元,用于判断所述目标数据库是否存在空闲连接;
返回单元,用于若所述目标数据库存在空闲连接,则返回一个空闲连接给所述客户端。
可选地,所述连接模块还包括:
侦测单元,用于当所述目标数据库不存在空闲连接时,侦测与所述目标数据库在同一数据库实例组别内的其他数据库是否存在空闲连接;
处理单元,用于若与所述目标数据库在同一数据库实例组别内的其他数据库存在空闲连接,则返回一个空闲连接给所述客户端,并将所述空闲连接对应的所述数据库的名称,修改为所述目标数据库的名称。
可选地,所述接收模块还包括:
创建单元,用于当与所述目标数据库在同一数据库实例组别内的其他数据库不存在空闲连接时,设定所述连接池的固定线程执行异步建立连接操作,根据所述异步建立连接操作在所述目标数据库下创建一个新的连接,并将所述新的连接返回给所述客户端。
可选地,所述分布式数据库连接装置还包括:
归还模块,用于当所述客户端根据得到目标数据库的指定连接完成执行数据库操作后,控制所述客户端将所述指定连接归还至所述连接池,并将所述指定连的接状态设置为空闲连接状态。
本发明实施例提供的分布式数据库连接方法和装置,通过将多个数据库实例进行分组,其中每组数据库实例中包括至少一个数据库,并配置一个连接池供所有数据库实例的数据库共享;设定所述连接池的指定线程执行空闲连接检查的操作,当接收到客户端发送的向连接池申请连接的请求时,根据该请求及空闲连接检查的操作结果返回一个空闲连接给客户端。实现了多个数据库共用一个连接池,减少了连接池的线程数量,节省了系统资源。
附图说明
图1为本发明分布式数据库连接方法一实施例的流程示意图;
图2为本发明分布式数据库连接装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,示出了本发明一种分布式数据库连接方法第一实施例。该实施例的分布式数据库连接方法包括:
步骤S10、将多个数据库实例进行分组,其中每组数据库实例中包括至少一个数据库,并配置一个连接池供所有数据库实例的数据库共享;
数据库连接是一种非常关键且有限的资源,如果数据库连接被反复地打开和关闭,将会严重浪费数据库大量的系统资源,同时会降低数据库的访问效率。一种高效的对数据库连接的管理方法将能够明显的降低数据库对系统资源的消耗,同时提升数据库和访问该数据库的应用程序性能。数据库连接池可通过复用数据库连接来减少频繁的打开和关闭连接进而提升数据库操作性能。
本实施例中,为了降低数据库对系统资源的消耗,首先,将多个数据库实例进行分组,其中每组数据库实例中包括至少一个数据库,并配置一个连接池供所有数据库实例的数据库共享,即连接池内部将连接按照数据库实例进行分组,每个数据库实例里的连接又按照数据库进行分组。实现了多个数据库共享一个连接池,从而使得同一个数据库实例的不同数据库之间的连接可以复用,节省了系统资源。
步骤S20、设定所述连接池的指定线程执行空闲连接检查的操作,当接收到客户端发送的向所述连接池申请连接的请求时,根据所述请求及所述空闲连接检查的操作结果返回一个空闲连接给所述客户端。
基于上述所有数据库实例中的数据库共享一个连接池,可设定该连接池使用固定数量的指定线程进行空闲连接检查、异步建立连接以及异步关闭连接等。使得连接池线程数量相对于一个数据库配置一个独立的连接较少,提高了客户端中应用程序的服务能力。
当客户端向连接池申请连接时,分布式数据库连接装置先根据指定的数据库实例的名称找到到相应的目标数据库实例的连接分组,然后再根据指定的数据库名称找到该目标数据库对应的连接分组里获取连接。
若该目标数据库里没有空闲连接,则遍历同一实施例的数据库分组获取连接,如果同一实施例中的其他数据库有空闲连接,则通过use命令来切换数据库进行连接复用,如果同一实施例中的其他数据库没有空闲连接,则创建一个指向目标数据库的新的连接。从而使得客户端能够获取连接,解决了分布式数据库中传统连接池消耗资源过多且无法进行同数据库实例多数据库的连接复用问题。
本发明实施例通过将多个数据库实例进行分组,其中每组数据库实例中包括至少一个数据库,并配置一个连接池供所有数据库实例的数据库共享;设定所述连接池的指定线程执行空闲连接检查的操作,当接收到客户端发送的向连接池申请连接的请求时,根据该请求及空闲连接检查的操作结果返回一个空闲连接给客户端。实现了多个数据库共用一个连接池,减少了连接池的线程数量,节省了系统资源。
进一步地,基于上述分布式数据库连接方法第一实施例,提出了本发明分布式数据库连接方法第二实施例,该实施例中上述步骤S20包括:
当接收客户端发送的向所述连接池申请连接的请求时,根据所述数据库实例名称查找目标数据库实例,并根据所述目标数据库名称在所述目标数据库实例中获取目标数据库;
判断所述目标数据库是否存在空闲连接;
若所述目标数据库存在空闲连接,则返回一个空闲连接给所述客户端。
本实施例中,当客户端向分布式数据库连接装置中的连接池发送申请连接的请求时,该请求包括目标数据库名称及数据库实例名称,先根据目标数据库名称找到到相应的目标数据库实例的连接分组,然后根据目标数据库名称在目标数据库实例中找到相应的目标数据库,以便到该目标数据库对应的连接分组里获取连接。找到对应的目标数据库后,首先判断该目标数据库是否存在空闲连接,若存在空闲连接,则选择一个空闲连接返回给客户端,同时可将该空闲连接的状态设置为使用状态。
进一步地,本实施例中,上述判断所述目标数据库是否存在空闲连接的步骤之后包括:
当所述目标数据库不存在空闲连接时,侦测与所述目标数据库在同一数据库实例组别内的其他数据库是否存在空闲连接;
若是,则返回一个空闲连接给所述客户端,并将所述空闲连接对应的所述数据库的名称,修改为所述目标数据库的名称。
本实施例中,若该目标数据库里没有空闲连接,则遍历同一实施例的其他数据库分组获取连接,如果同一实施例的其他数据库有空闲连接,则通过use命令来切换数据库进行连接复用,即从存在空闲连接的数据库中选择一个空闲连接返回给客户端,并将该空闲连接对应的数据库的名称,修改为目标数据库的名称,同时可将该空闲连接的状态设置为使用状态。
进一步地,本实施例中,上述侦测与所述目标数据库在同一数据库实例组别内的其他数据库是否存在空闲连接的步骤之后包括:
当与所述目标数据库在同一数据库实例组别内的其他数据库不存在空闲连接时,设定所述连接池的固定线程执行异步建立连接操作,根据所述异步建立连接操作在所述目标数据库下创建一个新的连接,并将所述新的连接返回给所述客户端。
本实施例中,若同一实施例的其他数据库中没有空闲连接,则连接池的固定线程执行异步建立连接操作,创建一个指向目标数据库的新的连接,即在该目标数据库下创建一个新的连接。将该新的连接返回给客户端,同时可将该新的连接的状态设置为使用状态。
本实施例在接收到客户端发送的向连接池申请连接的请求后,当目标数据库中存在空闲连接时,选择一个空闲连接返回给客户端;当目标数据库不存在空闲连接时,若与目标数据库在同一数据库实例组别内的其他数据库存在空闲连接,则选择一个空闲连接返回给客户端,否则在目标数据库下创建一个新的连接返回给客户端。使得不仅实现了多个数据库共享一个连接池,同一个数据库实例的不同数据库之间的连接可以复用,而且减少了连接池线程数量,节省了系统资源。
进一步地,基于上述分布式数据库连接方法第一或第二实施例,提出了本发明分布式数据库连接方法第三实施例,该实施例中上述分布式数据库连接方法还包括:
当所述客户端根据得到目标数据库的指定连接完成执行数据库操作后,控制所述客户端将所述指定连接归还至所述连接池,并将所述指定连的接状态设置为空闲连接状态。
本实施例中,客户端在得到目标数据库的指定连接后,进行数据库操作。该目标数据库的指定连接可为目标数据库返回的空闲连接,也可以是与目标数据在同一数据库实例内的其他数据库返回的空闲连接,或者是,创建一个指向目标数据库的新的连接。
在客户端执行操作完毕后,把目标数据库的指定连接归还给连接池,同时把该指定连的接状态设置为空闲连接状态,从而使得连接池不需要定期清理空闲时间过长的连接来降低数据库的连接数量,提高了连接池进行数据库连接的便捷性。
本实施例在客户端完成执行数据库操作后,可将连接归还至连接池,使得连接池可通过合理设置连接数,可以有效的保障数据库的可用性。
对应地,如图2所示,提出本发明一种分布式数据库连接装置第一实施例。该实施例的分布式数据库连接装置包括:
配置模块100,用于将多个数据库实例进行分组,其中每组数据库实例中包括至少一个数据库,并配置一个连接池供所有数据库实例的数据库共享;
数据库连接是一种非常关键且有限的资源,如果数据库连接被反复地打开和关闭,将会严重浪费数据库大量的系统资源,同时会降低数据库的访问效率。一种高效的对数据库连接的管理方法将能够明显的降低数据库对系统资源的消耗,同时提升数据库和访问该数据库的应用程序性能。数据库连接池可通过复用数据库连接来减少频繁的打开和关闭连接进而提升数据库操作性能。
本实施例中,为了降低数据库对系统资源的消耗,首先,配置模块100将多个数据库实例进行分组,其中每组数据库实例中包括至少一个数据库,并配置一个连接池供所有数据库实例的数据库共享,即连接池内部将连接按照数据库实例进行分组,每个数据库实例里的连接又按照数据库进行分组。实现了多个数据库共享一个连接池,从而使得同一个数据库实例的不同数据库之间的连接可以复用,节省了系统资源。
连接模块200,用于设定所述连接池的指定线程执行空闲连接检查的操作,当接收到客户端发送的向所述连接池申请连接的请求时,根据所述请求及所述空闲连接检查的操作结果返回一个空闲连接给所述客户端。
基于上述所有数据库实例中的数据库共享一个连接池,连接模块200可设定该连接池使用固定数量的指定线程进行空闲连接检查、异步建立连接以及异步关闭连接等。使得连接池线程数量相对于一个数据库配置一个独立的连接较少,提高了客户端中应用程序的服务能力。
当客户端向连接池申请连接时,连接模块200接收到客户端发送的向连接池申请连接的请求后,先根据指定的数据库实例的名称找到到相应的目标数据库实例的连接分组,然后再根据指定的数据库名称找到该目标数据库对应的连接分组里获取连接。
若该目标数据库里没有空闲连接,则遍历同一实施例的数据库分组获取连接,如果同一实施例中的其他数据库有空闲连接,则通过use命令来切换数据库进行连接复用,如果同一实施例中的其他数据库没有空闲连接,则创建一个指向目标数据库的新的连接。从而使得客户端能够获取连接,解决了分布式数据库中传统连接池消耗资源过多且无法进行同数据库实例多数据库的连接复用问题。
本发明实施例通过将多个数据库实例进行分组,其中每组数据库实例中包括至少一个数据库,并配置一个连接池供所有数据库实例的数据库共享;设定所述连接池的指定线程执行空闲连接检查的操作,当接收到客户端发送的向连接池申请连接的请求时,根据该请求及空闲连接检查的操作结果返回一个空闲连接给客户端。实现了多个数据库共用一个连接池,减少了连接池的线程数量,节省了系统资源。
进一步地,基于上述分布式数据库连接装置第一实施例,提出了本发明分布式数据库连接装置第二实施例,该实施例中上述接连接模块200包括:
获取单元,用于当接收客户端发送的向所述连接池申请连接的请求时,根据所述数据库实例名称查找目标数据库实例,并根据所述目标数据库名称在所述目标数据库实例中获取目标数据库;
判断单元,用于判断所述目标数据库是否存在空闲连接;
返回单元,用于若所述目标数据库存在空闲连接,则返回一个空闲连接给所述客户端。
本实施例中,当客户端向分布式数据库连接装置中的连接池申请连接时,接收客户端发送的向连接池申请连接的请求,该请求包括目标数据库名称及数据库实例名称。获取单元先根据目标数据库名称找到到相应的目标数据库实例的连接分组,然后根据目标数据库名称在目标数据库实例中找到相应的目标数据库,以便到该目标数据库对应的连接分组里获取连接。找到对应的目标数据库后,首先由判断单元判断该目标数据库是否存在空闲连接,若存在空闲连接,则返回单元选择一个空闲连接返回给客户端,同时可将该空闲连接的状态设置为使用状态。
进一步地,本实施例中,上述接连接模块200还包括:
侦测单元,用于当所述目标数据库不存在空闲连接时,侦测与所述目标数据库在同一数据库实例组别内的其他数据库是否存在空闲连接;
处理单元,用于若与所述目标数据库在同一数据库实例组别内的其他数据库存在空闲连接,则返回一个空闲连接给所述客户端,并将所述空闲连接对应的所述数据库的名称,修改为所述目标数据库的名称。
本实施例中,若该目标数据库里没有空闲连接,则遍历同一实施例的其他数据库分组获取连接,由侦测单元侦测与目标数据库在同一数据库实例组别内的其他数据库是否存在空闲连接。如果同一实施例的其他数据库有空闲连接,则处理单元通过use命令来切换数据库进行连接复用,即处理单元从存在空闲连接的数据库中选择一个空闲连接返回给客户端,并将该空闲连接对应的数据库的名称,修改为目标数据库的名称,同时可将该空闲连接的状态设置为使用状态。
进一步地,本实施例中,上述接连接模块200还包括:
创建单元,用于当与所述目标数据库在同一数据库实例组别内的其他数据库不存在空闲连接时,设定所述连接池的固定线程执行异步建立连接操作,根据所述异步建立连接操作在所述目标数据库下创建一个新的连接,并将所述新的连接返回给所述客户端。
本实施例中,若同一实施例的其他数据库中没有空闲连接,则连接池的固定线程执行异步建立连接操作,创建单元创建一个指向目标数据库的新的连接,即在该目标数据库下创建一个新的连接。将该新的连接返回给客户端,同时可将该新的连接的状态设置为使用状态。
本实施例在接收到客户端发送的向连接池申请连接的请求后,当目标数据库中存在空闲连接时,选择一个空闲连接返回给客户端;当目标数据库不存在空闲连接时,若与目标数据库在同一数据库实例组别内的其他数据库存在空闲连接,则选择一个空闲连接返回给客户端,否则在目标数据库下创建一个新的连接返回给客户端。使得不仅实现了多个数据库共享一个连接池,同一个数据库实例的不同数据库之间的连接可以复用,而且减少了连接池线程数量,节省了系统资源。
进一步地,基于上述分布式数据库连接装置第一或第二实施例,提出了本发明分布式数据库连接装置第三实施例,该实施例中上述分布式数据库连接装置还包括:
归还模块,用于当所述客户端根据得到目标数据库的指定连接完成执行数据库操作后,控制所述客户端将所述指定连接归还至所述连接池,并将所述指定连的接状态设置为空闲连接状态。
本实施例中,客户端在得到目标数据库的指定连接后,进行数据库操作。该目标数据库的指定连接可为目标数据库返回的空闲连接,也可以是与目标数据在同一数据库实例内的其他数据库返回的空闲连接,或者是,创建一个指向目标数据库的新的连接。
在客户端执行操作完毕后,归还模块把目标数据库的指定连接归还给连接池,同时把该指定连的接状态设置为空闲连接状态,从而使得连接池不需要定期清理空闲时间过长的连接来降低数据库的连接数量,提高了连接池进行数据库连接的便捷性。
本实施例在客户端完成执行数据库操作后,可将连接归还至连接池,使得连接池可通过合理设置连接数,可以有效的保障数据库的可用性。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种分布式数据库连接方法,其特征在于,所述分布式数据库连接方法包括以下步骤:
将多个数据库实例进行分组,其中每组数据库实例中包括至少一个数据库,并配置一个连接池供所有数据库实例的数据库共享;
设定所述连接池的指定线程执行空闲连接检查的操作,当接收到客户端发送的向所述连接池申请连接的请求时,根据所述请求及所述空闲连接检查的操作结果返回一个空闲连接给所述客户端。
2.如权利要求1所述的分布式数据库连接方法,其特征在于,所述请求包括目标数据库名称及数据库实例名称,所述当接收到客户端发送的向所述连接池申请连接的请求时,根据所述请求及所述空闲连接检查的操作结果返回一个空闲连接给所述客户端包括:
当接收到客户端发送的向所述连接池申请连接的请求时,根据所述数据库实例名称查找目标数据库实例,并根据所述目标数据库名称在所述目标数据库实例中获取目标数据库;
判断所述目标数据库是否存在空闲连接;
若所述目标数据库存在空闲连接,则返回一个空闲连接给所述客户端。
3.如权利要求2所述的分布式数据库连接方法,其特征在于,所述判断所述目标数据库是否存在空闲连接之后包括:
当所述目标数据库不存在空闲连接时,侦测与所述目标数据库在同一数据库实例组别内的其他数据库是否存在空闲连接;
若是,则返回一个空闲连接给所述客户端,并将所述空闲连接对应的所述数据库的名称,修改为所述目标数据库的名称。
4.如权利要求3所述的分布式数据库连接方法,其特征在于,所述侦测与所述目标数据库在同一数据库实例组别内的其他数据库是否存在空闲连接之后包括:
当与所述目标数据库在同一数据库实例组别内的其他数据库不存在空闲连接时,设定所述连接池的固定线程执行异步建立连接操作,根据所述异步建立连接操作在所述目标数据库下创建一个新的连接,并将所述新的连接返回给所述客户端。
5.如权利要求1-4中任一项所述的分布式数据库连接方法,其特征在于,所述分布式数据库连接方法还包括:
当所述客户端根据得到目标数据库的指定连接完成执行数据库操作后,控制所述客户端将所述指定连接归还至所述连接池,并将所述指定连的接状态设置为空闲连接状态。
6.一种分布式数据库连接装置,其特征在于,所述分布式数据库连接装置包括:
配置模块,用于将多个数据库实例进行分组,其中每组数据库实例中包括至少一个数据库,并配置一个连接池供所有数据库实例的数据库共享;
连接模块,用于设定所述连接池的指定线程执行空闲连接检查的操作,当接收到客户端发送的向所述连接池申请连接的请求时,根据所述请求及所述空闲连接检查的操作结果返回一个空闲连接给所述客户端。
7.如权利要求6所述的分布式数据库连接装置,其特征在于,所述请求包括目标数据库名称及数据库实例名称,所述连接模块包括:
获取单元,用于当接收到客户端发送的向所述连接池申请连接的请求时,根据所述数据库实例名称查找目标数据库实例,并根据所述目标数据库名称在所述目标数据库实例中获取目标数据库;
判断单元,用于判断所述目标数据库是否存在空闲连接;
返回单元,用于若所述目标数据库存在空闲连接,则返回一个空闲连接给所述客户端。
8.如权利要求7所述的分布式数据库连接装置,其特征在于,所述连接模块还包括:
侦测单元,用于当所述目标数据库不存在空闲连接时,侦测与所述目标数据库在同一数据库实例组别内的其他数据库是否存在空闲连接;
处理单元,用于若与所述目标数据库在同一数据库实例组别内的其他数据库存在空闲连接,则返回一个空闲连接给所述客户端,并将所述空闲连接对应的所述数据库的名称,修改为所述目标数据库的名称。
9.如权利要求8所述的分布式数据库连接装置,其特征在于,所述接收模块还包括:
创建单元,用于当与所述目标数据库在同一数据库实例组别内的其他数据库不存在空闲连接时,设定所述连接池的固定线程执行异步建立连接操作,根据所述异步建立连接操作在所述目标数据库下创建一个新的连接,并将所述新的连接返回给所述客户端。
10.如权利要求6-9中任一项所述的分布式数据库连接装置,其特征在于,所述分布式数据库连接装置还包括:
归还模块,用于当所述客户端根据得到目标数据库的指定连接完成执行数据库操作后,控制所述客户端将所述指定连接归还至所述连接池,并将所述指定连的接状态设置为空闲连接状态。
CN201610739951.XA 2016-08-26 2016-08-26 分布式数据库连接方法和装置 Active CN106354801B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610739951.XA CN106354801B (zh) 2016-08-26 2016-08-26 分布式数据库连接方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610739951.XA CN106354801B (zh) 2016-08-26 2016-08-26 分布式数据库连接方法和装置

Publications (2)

Publication Number Publication Date
CN106354801A true CN106354801A (zh) 2017-01-25
CN106354801B CN106354801B (zh) 2019-12-20

Family

ID=57855356

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610739951.XA Active CN106354801B (zh) 2016-08-26 2016-08-26 分布式数据库连接方法和装置

Country Status (1)

Country Link
CN (1) CN106354801B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111597156A (zh) * 2020-05-13 2020-08-28 中国民航信息网络股份有限公司 民航数据处理方法、装置、电子设备及存储介质
CN112527906A (zh) * 2020-12-17 2021-03-19 武汉武钢绿色城市技术发展有限公司 一种基于SpringBoot分布式数据库数据访问方法
CN112612834A (zh) * 2020-12-23 2021-04-06 瀚高基础软件股份有限公司 数据库中间件及其实现客户端与服务器连接的方法
CN114866597A (zh) * 2022-07-11 2022-08-05 广东睿江云计算股份有限公司 一种分组管理客户端连接方法以及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609467A (zh) * 2012-01-16 2012-07-25 北京星网锐捷网络技术有限公司 数据库连接管理方法和装置
CN103729373A (zh) * 2012-10-15 2014-04-16 北京新媒传信科技有限公司 一种数据库代理方法和装置
CN104809247A (zh) * 2015-05-18 2015-07-29 北京京东尚科信息技术有限公司 数据库连接的分配和回收方法
CN105095438A (zh) * 2015-07-23 2015-11-25 北京按钮云商科技有限公司 一种基于.net数据库连接池的数据管理方法及系统
CN105138693A (zh) * 2015-09-18 2015-12-09 联动优势科技有限公司 一种访问数据库的方法及装置
CN105279263A (zh) * 2015-10-23 2016-01-27 国网信息通信产业集团有限公司 一种支持多应用共享的数据库连接系统及方法
CN105512188A (zh) * 2015-11-25 2016-04-20 用友网络科技股份有限公司 数据连接方法和数据连接系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609467A (zh) * 2012-01-16 2012-07-25 北京星网锐捷网络技术有限公司 数据库连接管理方法和装置
CN103729373A (zh) * 2012-10-15 2014-04-16 北京新媒传信科技有限公司 一种数据库代理方法和装置
CN104809247A (zh) * 2015-05-18 2015-07-29 北京京东尚科信息技术有限公司 数据库连接的分配和回收方法
CN105095438A (zh) * 2015-07-23 2015-11-25 北京按钮云商科技有限公司 一种基于.net数据库连接池的数据管理方法及系统
CN105138693A (zh) * 2015-09-18 2015-12-09 联动优势科技有限公司 一种访问数据库的方法及装置
CN105279263A (zh) * 2015-10-23 2016-01-27 国网信息通信产业集团有限公司 一种支持多应用共享的数据库连接系统及方法
CN105512188A (zh) * 2015-11-25 2016-04-20 用友网络科技股份有限公司 数据连接方法和数据连接系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111597156A (zh) * 2020-05-13 2020-08-28 中国民航信息网络股份有限公司 民航数据处理方法、装置、电子设备及存储介质
CN111597156B (zh) * 2020-05-13 2023-05-23 中国民航信息网络股份有限公司 民航数据处理方法、装置、电子设备及存储介质
CN112527906A (zh) * 2020-12-17 2021-03-19 武汉武钢绿色城市技术发展有限公司 一种基于SpringBoot分布式数据库数据访问方法
CN112612834A (zh) * 2020-12-23 2021-04-06 瀚高基础软件股份有限公司 数据库中间件及其实现客户端与服务器连接的方法
CN114866597A (zh) * 2022-07-11 2022-08-05 广东睿江云计算股份有限公司 一种分组管理客户端连接方法以及系统

Also Published As

Publication number Publication date
CN106354801B (zh) 2019-12-20

Similar Documents

Publication Publication Date Title
CN106354801A (zh) 分布式数据库连接方法和装置
CN104050042B (zh) Etl作业的资源分配方法及装置
CN110704186A (zh) 基于混合分布架构的计算资源分配方法、装置和存储介质
CN105117289A (zh) 基于云测试平台的任务分配方法、装置及系统
US20100223213A1 (en) System and method for parallelization of machine learning computing code
CN106547612A (zh) 一种多任务处理方法及装置
US8745637B2 (en) Middleware for extracting aggregation statistics to enable light-weight management planners
CN103793275B (zh) 实现负载均衡的系统及处理方法
CN105279017A (zh) 基于云测试平台的任务分配方法、装置及系统
CN110351384A (zh) 大数据平台资源管理方法、装置、设备及可读存储介质
CN105468619B (zh) 用于数据库连接池的资源分配方法和装置
CN108509501A (zh) 一种查询处理方法、服务器及计算机可读存储介质
CN108763093A (zh) 一种自动化测试方法和系统
CN109828790A (zh) 一种基于申威异构众核处理器的数据处理方法和系统
CN105991699A (zh) 一种互联网爬虫的分布式下载系统
CN106779482A (zh) 一种基于任务间优先关系约束的任务分配方法和系统
CN103049311B (zh) 分区操作系统的综合化调度算法
CN111767145A (zh) 容器调度系统、方法、装置和设备
CN105550180B (zh) 数据处理的方法、装置及系统
CN105279065B (zh) 在云测试平台中统计测试结果的方法及装置
US20170024245A1 (en) Workload-aware shared processing of map-reduce jobs
CN108134851B (zh) 数据传输的服务质量控制方法及装置
CN104391735B (zh) 虚拟化一体机集群中虚拟机调度方法及系统
CN103533029A (zh) 甘特图数据加载方法及系统
CN109889406A (zh) 用于管理网络连接的方法、装置、设备和存储介质

Legal Events

Date Code Title Description
C06 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: 20171208

Address after: 510000 Guangzhou City, Guangzhou, Guangdong, Fangcun Avenue, one of the 314 self compiled

Applicant after: Guangzhou Pinwei Software Co., Ltd.

Address before: Liwan District Fangcun Huahai street Guangzhou city Guangdong province 510000 No. 20 self 1-5 building (only for office use)

Applicant before: Guangzhou VIPSHOP Information and Technology Co., Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220104

Address after: 510000 Room 601, 128 Dingxin Road, Haizhu District, Guangzhou City, Guangdong Province (office only)

Patentee after: Vipshop (Guangzhou) Software Co.,Ltd.

Address before: 510000 No. 314, Fangcun Avenue, Liwan District, Guangzhou City, Guangdong Province

Patentee before: GUANGZHOU PINWEI SOFTWARE Co.,Ltd.

TR01 Transfer of patent right