一种多数据源切换方法、装置及电子设备与流程

文档序号:34742030发布日期:2023-07-12 22:49阅读:22来源:国知局
一种多数据源切换方法、装置及电子设备与流程

本发明涉及数据处理,尤其涉及一种多数据源切换方法、装置及电子设备。


背景技术:

1、在目前互联网高并发(写少读多)的场景下,多数据源的读写分离可以缓解目前db(写主库读从库)的压力,从而提升系统的吞吐率.对于银行某些交易场景也存在少数场景写服务在主库(mas ter),读服务在备(oracle adg)库。

2、由于生产环境偶尔出现网络不稳定或者adg((act ive data guard)库延时导致读取数据失败,从而造成生产事故的发生。虽然目前spring开源框架有提供双数据源配置的处理方案,但是需要业务代码定义那些sql语句从不同的数据源读取,在遇到备库异常情况,数据读取失败,造成生产环境业务崩溃。

3、因此,现有技术还有待于改进和发展。


技术实现思路

1、鉴于上述现有技术的不足,本发明提供了一种多数据源切换方法、装置及电子设备,旨在解决现有技术中spring开源框架有提供双数据源配置的处理方案,但是需要业务代码定义那些sql语句从不同的数据源读取,在遇到备库异常情况,数据读取失败,造成生产环境业务崩溃的问题。

2、本发明的技术方案如下:

3、本发明第一实施例提供了一种多数据源切换方法,所述方法包括:

4、检测到定时任务,判断定时任务是否在延时检测间隔内;

5、若当前的定时任务在延时检测间隔内,判断当前的定时任务是否存在延时;

6、若当前的定时任务存在延时,则将从数据库的状态设置为不可用,将主数据库作为数据源;

7、若当前的定时任务不存在延时,则将从数据库的状态设置为可用,将主数据库和从数据库作为数据源。

8、进一步地,所述若当前的定时任务存在延时,则将从数据库的状态设置为不可用,将主数据库作为数据源,包括:

9、若当前的定时任务存在延时,则对延时次数进行处理;

10、将从数据库的状态设置为不可用,将主数据库作为数据源。

11、进一步地,所述若当前的定时任务不存在延时,则将从数据库的状态设置为可用,将主数据库和从数据库作为数据源,包括:

12、若当前的定时任务不存在延时,则对非延时次数进行处理;

13、将从数据库的状态设置为可用,将主数据库和从数据库作为数据源。

14、进一步地,所述若当前的定时任务存在延时,则对延时次数进行处理,包括:

15、若当前的定时任务存在延时,则将非延时次数设置为0,并将延时次数设置为上次延时次数再加1。

16、进一步地,所述若当前的定时任务不存在延时,则对非延时次数进行处理,包括:

17、若当前的定时任务不存在延时,则将非延时次数设置为上次非延时次数加1,将延时次数设置为0。

18、进一步地,所述若当前的定时任务存在延时,则将从数据库的状态设置为不可用,将主数据库作为数据源后,还包括:

19、判断定时任务否为第一次启动;

20、若定时任务第一次启动,则将从数据库的状态设置为可用,将主数据库和从数据库作为数据源;

21、若定时任务非第一次启动,且非延迟次数大于等于预设的非延迟次数阈值,则将主数据库和从数据库作为数据源。

22、进一步地,所述若当前的定时任务存在延时,则将从数据库的状态设置为不可用,将主数据库作为数据源后,还包括:

23、判断定时任务否为第一次启动;

24、若定时任务第一次启动,则将从数据库的状态设置为可用,将主数据库和从数据库作为数据源;

25、若定时任务非第一次启动,且非延迟次数大于等于预设的非延迟次数阈值,则将主数据库和从数据库作为数据源。

26、本发明的另一实施例提供了一种多数据源切换装置,装置包括:

27、检测间隔判断模块,用于检测到定时任务,判断定时任务是否在延时检测间隔内;

28、延时判断模块,用于若当前的定时任务在延时检测间隔内,判断当前的定时任务是否存在延时;

29、第一数据源选择模块,用于若当前的定时任务存在延时,则将从数据库的状态设置为不可用,将主数据库作为数据源;

30、第二数据源选择模块,用于若当前的定时任务不存在延时,则将从数据库的状态设置为可用,将主数据库和从数据库作为数据源。

31、本发明的另一实施例提供了一种电子设备,所述电子设备包括至少一个处理器;以及,

32、与所述至少一个处理器通信连接的存储器;其中,

33、所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的多数据源切换方法。

34、本发明的另一实施例还提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行上述的多数据源切换方法。

35、有益效果:本发明实施例的多数据源切换方法,通过自动动态切换数据源来规避异常场景,保证生产环境业务稳定;而且实时监控主从库的数据库连接情况,提供实时大盘监控能力。



技术特征:

1.一种多数据源切换方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述若当前的定时任务存在延时,则将从数据库的状态设置为不可用,将主数据库作为数据源,包括:

3.根据权利要求2所述的方法,其特征在于,所述若当前的定时任务不存在延时,则将从数据库的状态设置为可用,将主数据库和从数据库作为数据源,包括:

4.根据权利要求3所述的方法,其特征在于,所述若当前的定时任务存在延时,则对延时次数进行处理,包括:

5.根据权利要求4所述的方法,其特征在于,所述若当前的定时任务不存在延时,则对非延时次数进行处理,包括:

6.根据权利要求5所述的方法,其特征在于,所述若当前的定时任务存在延时,则将从数据库的状态设置为不可用,将主数据库作为数据源后,还包括:

7.根据权利要求6所述的方法,其特征在于,所述若定时任务非第一次启动,且非延迟次数大于等于预设的非延迟次数阈值,则将主数据库和从数据库作为数据源,包括:

8.一种多数据源切换装置,其特征在于,所述装置包括:

9.一种电子设备,其特征在于,所述电子设备包括至少一个处理器;以及,

10.一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行权利要求1-7任一项所述的多数据源切换方法。


技术总结
本发明公开了一种多数据源切换方法、装置及电子设备,方法包括:检测到定时任务,判断定时任务是否在延时检测间隔内;若当前的定时任务在延时检测间隔内,判断当前的定时任务是否存在延时;若当前的定时任务存在延时,则将从数据库的状态设置为不可用,将主数据库作为数据源;若当前的定时任务不存在延时,则将从数据库的状态设置为可用,将主数据库和从数据库作为数据源。本发明实施例可以通过自动动态切换数据源来规避异常场景,保证生产环境业务稳定;而且实时监控主从库的数据库连接情况,提供实时大盘监控能力。

技术研发人员:彭前庆
受保护的技术使用者:平安科技(深圳)有限公司
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1