[发明专利]一种数据库代理方法和装置有效
申请号: | 201210390622.0 | 申请日: | 2012-10-15 |
公开(公告)号: | CN103729373B | 公开(公告)日: | 2017-08-04 |
发明(设计)人: | 魏智强 | 申请(专利权)人: | 北京新媒传信科技有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京市隆安律师事务所11323 | 代理人: | 权鲜枝,董垚 |
地址: | 100089 北京市海淀区万*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库 代理 方法 装置 | ||
技术领域
本发明涉及数据库技术领域,特别涉及一种数据库代理方法和装置。
背景技术
数据库代理是处于底层数据库和用户应用系统之间的,主要用于屏蔽异构数据库的底层细节问题的中间件,是应用服务器与后台的数据库之间进行通讯的桥梁。应用服务器需要对某个数据库执行操作请求,例如SQL请求时,通过数据库中间件搜索匹配的数据库连接,并将SQL请求转发给对应的数据库,通过数据库中间件对数据库进行操作。其主要作用是封装复杂繁琐的数据库应用接口和数据库操作过程,简化应用程序的数据库操作,提高应用程序开发效率。
但是目前很多数据库代理软件没有做后端数据库读写分离的处理,或者多个数据库使用同一个连接池,对于数据库操作频繁、数据量大的请求,增加了数据库压力,数据库响应时间增加,影响系统性能,因此,亟需一种查询效率高、响应时间短的数据库代理方法和装置。
发明内容
本发明提供一种数据库代理方法和装置,以达到查询效率高、响应时间短的效果。为达到上述目的,本发明采用如下技术方案:
本发明公开了一种数据库代理方法,包括:
为多个数据库中的每个数据库建立连接池;
接收数据库应用端发送的请求;
按接收的请求,调取连接池中的数据库连接进行数据库操作;
将执行结果返回给数据库应用端;
其中,所述调取连接池中的数据库连接进行数据库操作包括:
解析请求中的信息获得数据库操作命令;
根据数据库操作命令和配置信息确定作为操作对象的数据库,所述配置信息包含所述多个数据库的数据库类型;
从所确定的数据库所对应的连接池中调取数据库连接,应用该数据库连接将数据库操作命令发送给所确定的数据库,并从该数据库接收执行结果。
其中,该方法还包括在接收请求之前建立线程池,线程池中包括至少一个线程;
所述按接收的请求,调取连接池中的数据库连接进行数据库操作具体包括:调用线程池中一个空闲的线程,所述线程按接收的请求,调取连接池中的数据库连接进行数据库操作;完成数据库操作后,将该线程的状态设置为空闲或删除该线程。
其中,所述数据库包括用于执行数据库写操作的主数据库和用于执行数据库读操作的从数据库;
所述根据数据库操作命令和配置信息确定作为操作对象的数据库具体包括:
判断数据库操作命令是否为执行读的操作,若判断为是,则确定数据库类型为从数据库,若判断为否,则确定数据库类型为主数据库;进而根据配置信息包含的数据库类型,确定作为操作对象的数据库。
其中,当通过数据库连接与数据库通信出现故障时,将所述数据库连接所属的连接池中的数据库连接的状态设置为异常,并定时从该连接池调取一个数据库连接来与数据库重新建立连接,直到正常连接后将所述连接池中的数据库连接的状态设置为正常。
其中,从该数据库接收执行结果完成后,将所调取的数据库连接的状态设置为空闲或删除该数据库连接。
所述为多个数据库中的每个数据库建立连接池具体包括:为每个数据库,创建预设数目的数据库连接;
所述从所确定的数据库所对应的连接池中调取数据库连接具体包括:判断所确定的数据库所对应的连接池中是否有空闲的数据库连接,若判断为是,则直接从连接池中调取空闲的数据库连接,若判断为否,则进一步判断数据库连接的数目是否达到了预设的最大值,若判断为是,则延迟一段预设时间后判断连接池中是否有空闲的数据库连接,若判断为否,则创建新的数据库连接。
本发明还公开了一种数据库代理的装置,该装置与多个数据库连接,并包括连接配置单元、交互单元和操作单元:
连接配置单元,用于为多个数据库中的每个数据库建立连接池;
交互单元,用于接收数据库应用端发送的请求,将执行结果返回给数据库应用端;
操作单元,用于从交互单元接收请求、按接收的请求,调取连接池中的数据库连接进行数据库操作,包括:
解析模块,用于解析请求中的信息获得数据库操作命令,并将数据库操作命令发送给选择模块和执行模块;
选择模块,用于根据数据库操作命令和配置信息确定作为操作对象的数据库,并将确定结果发送给执行模块,所述配置信息包含所述多个数据库的数据库类型;
执行模块,用于从所确定的数据库所对应的连接池中调取数据库连接,应用该数据库连接将数据库操作命令发送给所确定的数据库,并从该数据库接收执行结果,并将执行结果发送给交互单元。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京新媒传信科技有限公司,未经北京新媒传信科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210390622.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种旋挖钻机用回转缓冲补油装置
- 下一篇:复合控制式变量泵