分布式数据库连接方法和装置制造方法及图纸

技术编号:14778338 阅读:82 留言:0更新日期:2017-03-09 14:12
本发明专利技术公开了一种分布式数据库连接方法,包括步骤:从预先设置的数据库实例分组中确定所述连接请求所属的数据库连接分组;查询所述数据库连接分组中是否存在空闲连接;若所述数据库连接分组中存在空闲连接,则运用所述数据库连接分组的空闲连接创建所述应用程序的连接;若所述数据库连接分组中不存在空闲连接,则查询所属数据库实例中其他数据库连接分组中是否存在空闲连接,以运用其他数据库连接分组中的空闲连接创建所述应用程序的连接。本发明专利技术还公开了一种分布式数据库连接装置。本发明专利技术实现了数据库空闲连接的复用,并能够异步整理连接池线程。

【技术实现步骤摘要】

本专利技术涉及数据库
,尤其涉及一种分布式数据库连接方法和装置
技术介绍
数据库连接是一种非常关键且有限的昂贵的资源,如果数据库连接被反复地打开和关闭,将会严重浪费数据库大量的系统资源,同时会降低数据库的访问效率。一种高效的对数据库连接的管理方法将能够明显的降低数据库对系统资源的消耗,同时提升数据库和访问该数据库的应用程序性能。在数据库连接中,数据库连接池是一种通过复用数据库连接来减少频繁的打开和关闭连接进而提升数据库操作性能的方案。在现有技术中,数据连接的步骤包括以下几个:1、应用程序向连接池申请连接,连接池确认是否有空闲连接,如果有空闲连接则选择一个返回给应用程序,没有空闲连接则创建一个新的数据库连接并把该连接状态设置为使用中同时返回给应用程序;2、应用程序拿到数据库连接后进行数据库操作;3、操作完毕后应用程序把数据库连接归还给连接池,同时把连接状态设置为空闲;4、连接池会定期清理空闲时间过长的连接以降低数据库的连接数量;5、连接池通过合理的最大连接数的设置可以有效的保障数据库的可用性。目前的数据库连接建立的过程为:1、每个数据库对应一个连接池,加入每个连接池的最大连接数设置为20个,但是当同一个数据库实例的8个数据库中存在冷热数据导致不同时刻访问量差别较大时,访问量大的连接池连接不够用而访问量少的连接池却存在空闲连接而无法被复用导致资源浪费;2、每个连接池都有一些固定的后台线程做空闲连接检查、新建连接、关闭连接等维护连接的操作,假如每个连接池有3个线程,那么每个应用程序将有128*3=384个线程,二大部分维护连接的操作只需要少量线程即可完成导致连接池浪费了大量应用程序的系统资源,降低了应用程序的服务能力。本专利技术旨在解决在分布式数据中传统连接池的一些不足,包括:1、同一个数据库实例的不同数据库之间的连接无法复用导致资源浪费;2、连接池线程数过多,浪费了大量应用程序的系统资源,降低了应用程序的服务能力。上述内容仅用于辅助理解本专利技术的技术方案,并不代表承认上述内容是现有技术。
技术实现思路
本专利技术的主要目的在解决分布式数据库中传统连接池的一些不足,包括加同一个数据库实例的不同数据库之间的连接无法复用导致资源浪费和连接池线程数过多,浪费了应用程序的系统资源,降低了应用程序的服务能力。为实现上述目的,本专利技术提供的一种分布式数据连接方法,包括以下步骤:接收应用程序的连接请求,从预先设置的数据库实例分组中确定所述连接请求所属的数据库连接分组;查询所述数据库连接分组中是否存在空闲连接;若所述数据库连接分组中存在空闲连接,则运用所述数据库连接分组的空闲连接创建所述应用程序的连接;若所述数据库连接分组中不存在空闲连接,则查询所属数据库实例中其他数据库连接分组中是否存在空闲连接,以运用其他数据库连接分组中的空闲连接创建所述应用程序的连接。优选地,所述若所述数据库连接分组中不存在空闲连接,则查询所属数据库实例中其他数据库连接分组中是否存在空闲连接,以运用其他数据库连接分组中的空闲连接创建所述应用程序的连接之后,还包括:若所属数据库实例连接分组中的其他数据库连接分组中存在空闲连接,则运用该数据库连接分组中的空闲连接创建所述应用程序的连接。若所属数据库实例连接分组中的其他数据库连接分组中不存在空闲连接,则创建一个指向所述数据库的新连接,运用所述新连接创建所述应用程序的连接。优选地,所述从预先设置的数据库分组中确定所述连接请求所属的数据库连接分组的步骤包括:从预先设置的数据库实例分组中确定所述连接请求所属的数据库实例连接分组;并从所述确定的数据库实例连接分组中确定所述应用程序的连接请求所属的数据库连接分组。优选地,包括:在查询数据库连接分组中是否存在空闲连接时,通过预设数量的线程,对连接池中的对应数据库连接分组中的所有连接进行空闲连接查询操作。优选地,所述在查询数据库中是否存在空闲连接时,通过预设数量的线程,对连接池中的所有连接进行空闲连接检查操作之后,还包括:若检查到运行的空闲连接断开,则使用线程将断开的空闲连接重新连接;若检查到运行的空闲连接数量超过目标数量,则使用线程将超过目标数量的空闲连接关闭。此外,为实现上述目的,本专利技术还提供一种分布式数据连接装置,包括:接收模块,用于接收应用程序的连接请求;确认模块,用于从预先设置的数据库实例分组中确定所述连接请求所属的数据库连接分组;查询模块,用于查询所述数据库连接分组中是否存在空闲连接;连接模块,用于若所述数据库连接分组中存在空闲连接,则运用所述数据库连接分组的空闲连接创建所述应用程序的连接;遍历模块,用于若所述数据库连接分组中不存在空闲连接,则查询所属数据库实例中其他数据库连接分组中是否存在空闲连接,以运用其他数据库连接分组中的空闲连接创建所述应用程序的连接。优选地,还包括:所述连接模块,还用于若所属数据库实例连接分组中的其他数据库连接分组中不存在空闲连接,则创建一个指向所述数据库的新连接,运用所述新连接创建所述应用程序的连接。优选地,还包括:所述确认模块,还用于从预先设置的数据库实例分组中确定所述连接请求所属的数据库实例连接分组;并从所述确定的数据库实例连接分组中确定所述应用程序的连接请求所属的数据库连接分组。优选地,还包括:检查模块,用于在查询数据库中是否存在空闲连接时,通过预设数量的线程,对连接池中的所有连接进行空闲连接查询操作。优选地,还包括:操作模块,用于若检查到有运行的空闲连接断开,则使用线程将断开的连接关联;还用于若检查到有运行的空闲连接数量超过目标数量,则使用线程将目标数量以外的空闲连接关闭。本专利技术通过接收应用程序的连接请求,从预先设置的数据库实例分组中确定所述连接请求所属的数据库连接分组;查询所述数据库连接分组中是否存在空闲连接;若所述数据库连接分组中存在空闲连接,则运用所述数据库连接分组的空闲连接创建所述应用程序的连接;若所述数据库连接分组中不存在空闲连接,则查询所属数据库实例中其他数据库连接分组中是否存在空闲连接,以运用其他数据库连接分组中的空闲连接创建所述应用程序的连接。有效的避免了同一个数据库实例的不同数据库之间的连接无法复用导致资源浪费,且避免了连接池线程数过多,浪费了大量应用程序的系统资源,降低了应用程序的服务能力。附图说明图1为本专利技术分布式数据库连接方法的第一实施例的流程示意图;图2为本专利技术分布式数据库连接方法的第二实施例的流程示意图;图3为本专利技术分布式数据库连接方法的第三实施例的流程示意图;图4为本专利技术分布式数据库连接方法的第四实施例的流程示意图;图5为本专利技术分布式数据库连接方法的第五实施例的流程示意图;图6为本专利技术分布式数据库连接装置的第一实施例的功能模块示意图;图7为本专利技术分布式数据库连接装置的第二实施例的功能模块示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术实施例的主要解决方案是:接收应用程序的连接请求,从预先设置的数据库分组中确定所述连接请求所属的数据库连接分组;并查询所述数据库连接分组中是否存在空闲连接;若所述数据库连接分组中存在空闲连接,则运用所述数据库连接分组的空闲连接创建所述应用程序的连接本文档来自技高网
...
分布式数据库连接方法和装置

【技术保护点】
一种分布式数据库连接方法,其特征在于,所述方法包括以下步骤:接收应用程序的连接请求,从预先设置的数据库实例分组中确定所述连接请求所属的数据库连接分组;查询所述数据库连接分组中是否存在空闲连接;若所述数据库连接分组中存在空闲连接,则运用所述数据库连接分组的空闲连接创建所述应用程序的连接;若所述数据库连接分组中不存在空闲连接,则查询所属数据库实例中其他数据库连接分组中是否存在空闲连接,以运用其他数据库连接分组中的空闲连接创建所述应用程序的连接。

【技术特征摘要】
1.一种分布式数据库连接方法,其特征在于,所述方法包括以下步骤:接收应用程序的连接请求,从预先设置的数据库实例分组中确定所述连接请求所属的数据库连接分组;查询所述数据库连接分组中是否存在空闲连接;若所述数据库连接分组中存在空闲连接,则运用所述数据库连接分组的空闲连接创建所述应用程序的连接;若所述数据库连接分组中不存在空闲连接,则查询所属数据库实例中其他数据库连接分组中是否存在空闲连接,以运用其他数据库连接分组中的空闲连接创建所述应用程序的连接。2.如权利要求1所述的分布式数据库连接方法,其特征在于,所述若所述数据库连接分组中不存在空闲连接,则查询所属数据库实例中其他数据库连接分组中是否存在空闲连接,以运用其他数据库连接分组中的空闲连接创建所述应用程序的连接之后,还包括:若所属数据库实例连接分组中的其他数据库连接分组中存在空闲连接,则运用该数据库连接分组中的空闲连接创建所述应用程序的连接。若所属数据库实例连接分组中的其他数据库连接分组中不存在空闲连接,则创建一个指向所述数据库的新连接,运用所述新连接创建所述应用程序的连接。3.如权利要求1所述的分布式数据库连接方法,其特征在于,所述从预先设置的数据库分组中确定所述连接请求所属的数据库连接分组的步骤包括:从预先设置的数据库实例分组中确定所述连接请求所属的数据库实例连接分组;并从所述确定的数据库实例连接分组中确定所述应用程序的连接请求所属的数据库连接分组。4.如权利要求1至3任一项所述的分布式数据库连接方法,其特征在于,所述方法包括:在查询数据库连接分组中是否存在空闲连接时,通过预设数量的线程,对连接池中的对应数据库连接分组中的所有连接进行空闲连接查询操作。5.如权利要求4所述的分布式数据库连接方法,其特征在于,所述在查询数据库中是否存在空闲连接时,通过预设数量的线程,对连接池中的所有连接进行空闲连接检查操作之后,还包括:若检查到运行的空闲连接...

【专利技术属性】
技术研发人员:王军伟宋威张学诚刘璟宇韩国忠何涛余倩
申请(专利权)人:广州唯品会信息科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1