一种集中管理动态数据库访问的方法与流程

文档序号:36722948发布日期:2024-01-16 12:27阅读:24来源:国知局
一种集中管理动态数据库访问的方法与流程

本发明涉及云服务,特别涉及一种集中管理动态数据库访问的方法。


背景技术:

1、随着软件行业的迅猛发展,软件行业在人们的日常生活中提供了越来越多的便利。在这种发展趋势下,人们趋向于将以前不便利的事情通过软件的方式实现符合期望的便利操作,但这会导致一些软件项目变得更加复杂。

2、支撑一个项目能够正常运转的基础就是存放在数据库中的各种数据。在保护数据方面,通常会通过备份数据库的方式来实现。同时为了减轻数据库的访问压力,通常并不会把所有的数据库部署在一台服务器上,而是通过分散部署在多台服务上来减轻服务器的压力,因为服务器上除了数据库应用还会部署其他的应用。然而,随着数据库数量和类型的不断增多,用户的访问成本不断提高,访问失败的概率越来越大。

3、为了解决多数量、多类型数据库在项目中访问的问题,降低开发成本,本发明提出了一种集中管理动态数据库访问的方法。


技术实现思路

1、本发明为了弥补现有技术的缺陷,提供了一种简单高效的集中管理动态数据库访问的方法。

2、本发明是通过如下技术方案实现的:

3、一种集中管理动态数据库访问的方法,其特征在于:包括以下步骤:

4、步骤s1、系统运行时,通过定时任务读取最新的数据库配置文件(dbconfig),为每一条数据库配置创建数据库链接池对象(dbpool),并且将数据库链接池对象统一放在固有数据库链接池集合(dbpoolslist)中;

5、对于动态数据库,即未配置数据库实例名称的数据库,则将数据库链接池的配置信息存放在动态数据库链接池集合(dynamicdbpoollist)中;

6、步骤s2、利用数据库监控机制(dbpoolmonitor)定时扫描所有的数据库链接池对象信息,检查最后的使用时间以及使用远程终端协议telnet验证数据库的可用性,将不可用的数据库通过邮件或者短信方式通知运维人员,并且将其数据库链接池状态设置为不可用;将不活跃的动态数据库从动态数据库链接池集合(dynamicdbpoollist)中移除该数据库链接信息,以降低服务器内存的开销;

7、所述不活跃的动态数据库是指数据库链接最近一次的调用时间距离当前时间的差值超过了预先设定的阈值;

8、步骤s3、业务使用固有数据库链接池对象时,利用数据库统一访问机制直接从固有数据库链接池集合中获取最新数据,并重新修改数据库链接池的最后使用时间(lastusetime);

9、当业务使用动态数据库链接池对象时,首先判断当前动态数据库链接池是否初始化,如果未初始化则根据数据库配置信息以及要调用的数据库实例名称初始化动态数据库链接池信息,在初始化完毕之后进行使用;

10、当使用动态数据库链接池获取到数据信息后,更新动态数据库链接池的最后使用时间(lastusetime);

11、步骤s4、从数据库中获取到数据后,调用数据转换机制,将数据信息转化为json字符串,然后反馈给业务层。

12、所述步骤s1中,读取数据库配置信息任务是一个内置的定时任务,用于读取数据库配置文件,以便新增数据库信息立即生效;定时任务每隔一段时间定时计算文件的md5值,判断本次与上一次读取文件时的md5值是否一致;如果不一致则代表文件有改动,重新读取数据库配置文件;

13、读取的数据库配置文件信息包括但不限于数据库别名、数据库所在服务器ip地址、数据库端口、数据库类型、数据库用户名和数据库密码。

14、读取的数据库配置文件信息还包括数据库实例名称。

15、数据库实例名称非空的数据库信息称之为固有数据库信息,数据库实例名称为空的数据库信息称之为动态数据库信息;在读取完数据库配置文件信息后,将固有数据库信息更新到固有数据库信息集合中,将动态数据库信息单独存放在另一个集合中;

16、所述固有数据库信息集合中存储有数据库别名以及对应的固有数据库连接池信息。

17、所述步骤s2中,数据库监控机制用于监控数据库链接状态以及清除掉一段时间(自定义设置阈值)内未活跃的数据库链接;

18、数据库监控机制定时检查数据库链接的信息,包括固有数据库连接系信息和动态数据库链接池信息,具体操作如下:

19、步骤s2.1、扫描固有数据库连接系信息,根据数据库所在主机和端口使用远程终端协议telnet检查固有数据库是否可用,如果服务不可用,则将固有数据库链接池状态(dbpoolstatus)改为不可用;

20、步骤s2.2、扫描动态数据库链接池信息,检查动态数据库链接池最后使用时间(lastusetime),如果当前最后使用时间超过了系统配置的最大数据库链接存活时间阈值,则从动态数据库链接池集合中移除,并销毁该动态数据库链接池对象;

21、所述步骤s3中,数据库统一访问机制先根据数据库别名从数据库链接池集合中获取到具体的数据库链接池对象,然后判断当前数据库链接池是否可用;

22、如果数据库链接池不可用,则直接返回既定的错误信息;

23、如果数据库链接池可用,则更新数据库链接池最后使用日期为当前时间,并从数据库链接池对象中获取到具体的数据库连接对象,然后执行传入的业务sql语句。

24、所述步骤s4中,对于能够产生结果集的sql语句,调用数据转换机制将结果转换成json数据库格式;对于不能够产生结果集的sql语句,只需要返回成功标识。

25、能够产生结果集的sql语句包括查询数据库表、查询数据库视图和查询同义词,增、删或改的sql语句不会产生结果集,只需要返回sql语句执行结果。

26、所述步骤s4中,数据转换机制用于将数据库统一访问机制返回的数据信息处理成json格式,包括但不限于数字类型、小数类型、字符串类型、字节类型、布尔类型和时间类型。

27、一种集中管理动态数据库访问的设备,其特征在于:包括存储器和处理器;所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序时实现如上所述的方法步骤。

28、一种可读存储介质,其特征在于:所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法步骤。

29、本发明的有益效果是:该集中管理动态数据库访问的方法,采用统一的数据库格式便于与业务逻辑层的数据载体做数据转换,同时还能够以最小的代码量支撑起业务的扩展功能,大大减少了数据库访问逻辑代码开发成本。



技术特征:

1.一种集中管理动态数据库访问的方法,其特征在于:包括以下步骤:

2.根据权利要求1所述的集中管理动态数据库访问的方法,其特征在于:所述步骤s1中,读取数据库配置信息任务是一个内置的定时任务,用于读取数据库配置文件,以便新增数据库信息立即生效;定时任务定时计算文件的md5值,判断本次与上一次读取文件时的md5值是否一致;如果不一致则代表文件有改动,重新读取数据库配置文件;

3.根据权利要求2所述的集中管理动态数据库访问的方法,其特征在于:读取的数据库配置文件信息还包括数据库实例名称;

4.根据权利要求1所述的集中管理动态数据库访问的方法,其特征在于:所述步骤s2中,数据库监控机制用于监控数据库链接状态以及清除掉自定义时间内未活跃的数据库链接;

5.根据权利要求1所述的集中管理动态数据库访问的方法,其特征在于:所述步骤s3中,数据库统一访问机制先根据数据库别名从数据库链接池集合中获取到具体的数据库链接池对象,然后判断当前数据库链接池是否可用;

6.根据权利要求5所述的集中管理动态数据库访问的方法,其特征在于:所述步骤s4中,对于能够产生结果集的sql语句,调用数据转换机制将结果转换成json数据库格式;对于不能够产生结果集的sql语句,只需要返回成功标识;

7.根据权利要求1或7所述的集中管理动态数据库访问的方法,其特征在于:所述步骤s4中,数据转换机制用于将数据库统一访问机制返回的数据信息处理成json格式,包括但不限于数字类型、小数类型、字符串类型、字节类型、布尔类型和时间类型。

8.一种集中管理动态数据库访问的设备,其特征在于:包括存储器和处理器;所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序时实现如权利要求1至7任意一项所述的方法步骤。

9.一种可读存储介质,其特征在于:所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任意一项所述的方法步骤。


技术总结
本发明特别涉及一种集中管理动态数据库访问的方法。该集中管理动态数据库访问的方法,定时读取最新的数据库配置文件,创建数据库链接池对象,并统一放在固有数据库链接池集合中;利用数据库监控机制定时扫描所有的数据库链接池对象信息,将不可用的数据库链接池状态设置为不可用;将不活跃的动态数据库信息从动态数据库链接池集合中移除;利用数据库统一访问机制直接从固有数据库链接池集合中获取最新数据,调用数据转换机制转化为JSON字符串,反馈给业务层。该集中管理动态数据库访问的方法,采用统一的数据库格式便于与业务逻辑层的数据载体做数据转换,同时还能够以最小的代码量支撑起业务的扩展功能,大大减少了数据库访问逻辑代码开发成本。

技术研发人员:苏德伟,徐士强,高传集
受保护的技术使用者:浪潮云信息技术股份公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1