通过数据库中间件查询数据的方法和数据库中间件技术

技术编号:10465956 阅读:166 留言:0更新日期:2014-09-24 18:03
本发明专利技术公开了一种通过数据库中间件查询数据的方法和数据库中间件,其中,该方法包括:数据库中间件接收访问请求,访问请求携带有检索条件;数据库中间件根据检索条件对多个数据库进行检索,以找到符合检索条件的数据信息。本发明专利技术通过数据库中间件接收访问请求,利用数据库中间件按照访问请求中的检索条件进行检索,通过该方法得到数据信息,其通过数据库中间件处理原来需要开发人员完成的工作,处理时间和处理速度都有较大提升,解决了现有技术的架构下,开发人员得到数据信息的过程较为繁琐复杂,极大的浪费开发人员的时间和精力的问题。

【技术实现步骤摘要】
通过数据库中间件查询数据的方法和数据库中间件
本专利技术涉及网络领域,特别是涉及一种通过数据库中间件查询数据的方法和数据 库中间件。
技术介绍
随着网络的日益发展,各个网站的访问量和数据量都与日俱增,系统由原有的基 于数据库的存储方式发展成多种的数据存储方式并存,数据库架构也就变得越来越复杂, 现有的单一的数据库已经满足不了原来的需求,进而发展成多种解决问题的实现方式,需 要满足以下条件:对数据库进行读写分离;采用数据库前端加缓存的方式;采用分库分表 的方式来提升集群的响应能力和存储容量。 在这同时,由于系统的发展,网络公司的发展也变得越来越庞大,部门划分越来越 多,各个技术部门由于解决问题的场景各自不一样,要求也不一样,导致了各个部门采用的 技术体系不一样,譬如有些部门采用java语言进行业务开发,有些部门采用C++等进行业 务开发,不同的业务开发语言也会带来很多不一样的访问方式,java语言采用jdbc的方 式,而C、C++、PHP等采用开放数据库互连(Open Database Connectivity,简称为ODBC)的 方式,存在着不同异构的系统。 由于技术架构的变更,由单一的简单直接的方式访问,变成复杂的异构的方式,系 统架构越来越复杂,开发和维护难度越来越难,出错几率越来越大,可扩展和可维护性比较 弱。 现有架构下,如某一线工程的开发人员想要调用相应的程序,其需要对多个存储 不同语言或不同业务的服务器进行访问,访问时,异构的系统访问过程较为复杂,且访问后 还需要对得到的结果进行处理,以得数据信息,过程繁琐复杂,极大的浪费开发人员的时间 和精力。 现有对数据库的访问,大多数是在应用编码中实现的,像开源社区的Mysql proxy,采用的是基于mysql协议,通过lua脚本进行编程控制的方式完成数据库的路由。 也有些技术方案采用客户端的方式进行封装,完成透明化处理。具体的实现方案 可以归结为三种方式:1.基于数据访问层(Data Access Layer,简称为DAL)的方式;2.基 于客户端框架的方式;3.基于数据库客户端协议的方式。现有技术的缺点如下: 对于客户端来说,其封装不完善,功能比较单一,可移植性比较差,使用成本比较 高,仅仅局限于当前语言(譬如:java),客户端访问仅仅局限于该公司内部使用到的技 术和方案,数据访问方式仅仅局限于对应的数据库,不能支持读写分离、高可用性(High Available,简称为HA)、Failover、数据迁移、数据同步等功能。 对于服务端来说,服务端需要有专用的服务器集群,通过集群转发,服务器集群作 为后端数据库的代理,服务器投入成本较高,同样服务器集群取代了数据库成为了一个中 心化的组件,中心化的问题比较严重,当中间集群出现故障的时候,会影响整个网站,导致 网站不可用,影响范围较大,同时,基于代理的方式,不方便扩展。 现有架构下,开发人员得到数据信息的过程较为繁琐复杂,极大的浪费开发人员 的时间和精力。
技术实现思路
本专利技术提供了一种通过数据库中间件查询数据的方法和数据库中间件,用以解决 现有技术的架构下,开发人员得到数据信息的过程较为繁琐复杂,极大的浪费开发人员的 时间和精力的问题。 为解决上述技术问题,一方面,本专利技术提供一种通过数据库中间件查询数据的方 法,包括:数据库中间件接收访问请求,所述访问请求携带有检索条件;所述数据库中间件 根据所述检索条件对多个数据库进行检索,以找到符合所述检索条件的数据信息。 进一步,数据库中间件接收访问请求之前,还包括:加载预设的配置文件,其中,力口 载过程包括:建立二级层级的虚拟节点,所述二级层级的虚拟节点用于控制读写分离和调 用数据时长,其中,第一层级虚拟节点包括:第二层级虚拟节点的对应关系表,第二层级虚 拟节点包括:与数据库的对应关系表;获取路由的配置规则。 进一步,加载预设的配置文件之后,还包括:将多个应用组件进行封装,并通过预 定访问接口进行数据库的访问操作。 进一步,所述数据库中间件根据所述检索条件对多个数据库进行检索,以找到符 合所述检索条件的数据信息之后,还包括:将所述数据信息进行集合,并将集合后的数据信 息进行输出。 进一步,当所述访问请求为来自客户端的访问请求时,所述数据库中间件根据所 述检索条件对多个数据库进行检索,以找到符合所述检索条件的数据信息包括:解析所述 访问请求中检索条件对应的sql语句,并对解析后的sql语句进行分析,以确定需要路由的 第一层级虚拟节点的配置参数;将所述配置参数发送至路由器,由路由器调用所述配置参 数对应的配置规则;根据所述配置规则对确定的第一层级虚拟节点执行路由过程,以得到 符合所述访问请求的数据信息。 进一步,由路由器调用所述配置参数对应的配置规则包括:路由器将包括配置参 数的调用指令发送至存储配置规则的设备,存储配置规则的设备根据所述配置参数确定路 由时需要的配置规则,并将所述配置规则发送至所述路由器;或者,路由器通过预设策略确 定路由时需要的配置规则,从存储配置规则的设备中获取所述需要的配置规则。 进一步,根据所述配置规则对确定的第一层级虚拟节点执行路由过程,以得到符 合所述访问请求的数据信息包括:按照所述配置规则查找对应的第一层级虚拟节点;在找 到的第一层级虚拟节点上查找第二层级虚拟节点的对应关系表,以确定下一级的第二层级 虚拟节点;查找确定的第二层级虚拟节点对应的数据库,并在所述数据库中执行sql语句, 以得到符合所述访问请求的数据信息。 进一步,对解析后的sql语句进行分析,以确定需要路由的第一层级虚拟节点的 配置参数之后,还包括:对分析得到的配置参数进行安全检测;在所述配置参数安全的情 况下,将所述配置参数发送至路由器。 进一步,所述方法还包括:在第一层级虚拟节点和/或第二层级虚拟节点出现故 障的情况下,按照预设负载均衡策略和/或预设高可用处理策略执行sql语句。 进一步,所述方法还包括:在所述数据库中执行Sql语句之前和之后,分别对当前 时刻的数据信息进行采样,以记录当前时刻的数据信息。 进一步,所述数据库中间件根据所述检索条件对多个数据库进行检索之前,还包 括:当所述访问请求为来自服务端的访问请求时,将从客户端获取的链接处理层Golang 语句进行10处理;对10处理后的所述链接处理层Golang语句进行封装,并将封装后的 Golang语句解析成sql语句;再按照所述访问请求为来自客户端的访问请求时的情况,执 行所述数据库中间件根据所述检索条件对多个数据库进行检索。 另一方面,本专利技术还提供一种数据库中间件,包括:接收模块,用于接收访问请求, 所述访问请求携带有检索条件;检索模块,用于根据所述检索条件对多个数据库进行检索, 以找到符合所述检索条件的数据信息。 进一步,所述数据库中间件还包括:加载模块,用于加载预设的配置文件,其中,力口 载过程包括:建立二级层级的虚拟节点,所述二级层级的虚拟节点用于控制读写分离和调 用数据时长,其中,第一层级虚拟节点包括:第二层级虚拟节点的对应关系表,第二层级虚 拟节点包括:与数据本文档来自技高网
...
通过数据库中间件查询数据的方法和数据库中间件

【技术保护点】
一种通过数据库中间件查询数据的方法,其特征在于,包括:数据库中间件接收访问请求,所述访问请求携带有检索条件;所述数据库中间件根据所述检索条件对多个数据库进行检索,以找到符合所述检索条件的数据信息。

【技术特征摘要】
1. 一种通过数据库中间件查询数据的方法,其特征在于,包括: 数据库中间件接收访问请求,所述访问请求携带有检索条件; 所述数据库中间件根据所述检索条件对多个数据库进行检索,以找到符合所述检索条 件的数据信息。2. 如权利要求1所述的方法,其特征在于,数据库中间件接收访问请求之前,还包括: 加载预设的配置文件,其中,加载过程包括: 建立二级层级的虚拟节点,所述二级层级的虚拟节点用于控制读写分离和调用数据时 长,其中,第一层级虚拟节点包括:第二层级虚拟节点的对应关系表,第二层级虚拟节点包 括:与数据库的对应关系表; 获取路由的配置规则。3. 如权利要求2所述的方法,其特征在于,加载预设的配置文件之后,还包括: 将多个应用组件进行封装,并通过预定访问接口进行数据库的访问操作。4. 如权利要求1所述的方法,其特征在于,所述数据库中间件根据所述检索条件对多 个数据库进行检索,以找到符合所述检索条件的数据信息之后,还包括: 将所述数据信息进行集合,并将集合后的数据信息进行输出。5. 如权利要求1至4中任一项所述的方法,其特征在于,当所述访问请求为来自客户端 的访问请求时,所述数据库中间件根据所述检索条件对多个数据库进行检索,以找到符合 所述检索条件的数据信息包括: 解析所述访问请求中检索条件对应的sql语句,并对解析后的sql语句进行分析,以确 定需要路由的第一层级虚拟节点的配置参数; 将所述配置参数发送至路由器,由路由器调用所述配置参数对应的配置规则; 根据所述配置规则对确定的第一层级虚拟节点执行路由过程,以得到符合所述访问请 求的数据信息。6. 如权利要求5所述的方法,其特征在于,由路由器调用所述配置参数对应的配置规 则包括: 路由器将包括配置参数的调用指令发送至存储配置规则的设备,存储配置规则的设备 根据所述配置参数确定路由时需要的配置规则,并将所述配置规则发送至所述路由器;或 者, 路由器通过预设策略确定路由时需要的配置规则,从存储配置规则的设备中获取所述 需要的配置规则。7. 如权利要求5所述的方法,其特征在于,根据所述配置规则对确定的第一层级虚拟 节点执行路由过程,以得到符合所述访问请求的数据信息包括: 按照所述配置规则查找对应的第一层级虚拟节点; 在找到的第一层级虚拟节点上查找第二层级虚拟节点的对应关系表,以确定下一级的 第二层级虚拟节点; 查找确定的第二层级虚拟节点对应的数据库,并在所述数据库中执行sql语句,以得 到符合所述访问请求的数据信息。8. 如权利要求5所述的方法,其特征在于,对解析后的sql语句进行分析,以确定需要 路由的第一层级虚拟节点的配置参数之后,还包括: 对分析得到的配置参数进行安全检测; 在所述配置参数安全的情况下,将所述配置参数发送至路由器。9. 如权利要求5所述的方法,其特征在于,所述方法还包括: 在第一层级虚拟节点和/或第二层级虚拟节点出现故障的情况下,按照预设负载均衡 策略和/或预设高可用处理策略执行sql语句。10. 如权利要求7...

【专利技术属性】
技术研发人员:罗立树范文斌陈阳
申请(专利权)人:五八同城信息技术有限公司
类型:发明
国别省市:天津;12

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

1