数据库连接处理方法、装置、设备及存储介质制造方法及图纸

技术编号:32929425 阅读:15 留言:0更新日期:2022-04-07 12:20
本发明专利技术公开了一种数据库连接处理方法、装置、设备及存储介质,所述方法包括:响应于接收到访问层发送的用于获取数据库的连接的请求信息,确定所述数据库当前配置的多个数据源;基于预设的数据源优先级以及当前存储的所述多个数据源的健康状态,从所述多个数据源中确定目标数据源;基于所述目标数据源向所述访问层返回所述连接。本发明专利技术可以提高所确定的目标数据源的可用性以及灵活性,从而可以满足开发者对于获取高质量的数据库连接的需求。者对于获取高质量的数据库连接的需求。者对于获取高质量的数据库连接的需求。

【技术实现步骤摘要】
数据库连接处理方法、装置、设备及存储介质


[0001]本专利技术涉及计算机
,尤其涉及一种数据库连接处理方法、装置、设备及存储介质。

技术介绍

[0002]随着云、大数据等技术的发展,越来越多的项目在进行开发时,需要访问多个数据库。相关技术中的一些开源框架,如Springboot等,虽然可以基于配置多个数据源的方式来提供数据库连接,但是配置方式比较单一,只能通过静态的指定使用哪个数据源,无法满足开发者对于获取高质量的数据库连接的需求。

技术实现思路

[0003]有鉴于此,本专利技术提出一种数据库连接处理方法、装置、设备及存储介质以解决上述技术问题。
[0004]为了达到上述目的,本专利技术所采用的技术方案为:
[0005]根据本专利技术实施例的第一方面,提出了一种数据库连接处理方法,包括:
[0006]响应于接收到访问层发送的用于获取数据库的连接的请求信息,确定所述数据库当前配置的多个数据源;
[0007]基于预设的数据源优先级以及当前存储的所述多个数据源的健康状态,从所述多个数据源中确定目标数据源;
[0008]基于所述目标数据源向所述访问层返回所述连接。
[0009]在一实施例中,所述方法还包括预先基于以下方式配置所述数据库的多个数据源:
[0010]通过配置多个数据源的配置文件,读取所述多个数据源的原始数据;
[0011]基于所述原始数据,将所述多个数据源加载到预设的动态数据源包装器中;
[0012]基于所述动态数据源包装器建立所述数据库的连接,并将所述连接存放在所述多个数据源中。
[0013]在一实施例中,还包括预先基于以下方式获取所述多个数据源的健康状态:
[0014]基于设定周期检测所述多个数据源的健康状态;
[0015]对检测到的所述多个数据源的健康状态进行存储。
[0016]在一实施例中,所述基于设定周期检测所述多个数据源的健康状态,包括:
[0017]建立与所述多个数据源之间的目标连接;
[0018]基于设定周期,利用所述目标连接检测所述多个数据源的健康状态。
[0019]在一实施例中,所述基于预设的数据源优先级以及当前存储的所述多个数据源的健康状态,从所述多个数据源中确定目标数据源,包括:
[0020]按照所述数据源优先级由高到低的顺序,依次判断所述多个数据源的健康状态是否满足选择条件;
[0021]响应于检测到健康状态满足所述选择条件的第一数据源,将所述第一数据源选择为目标数据源。
[0022]在一实施例中,所述方法还包括:
[0023]响应于确定所述目标数据源的类型为预设数据源类型,执行所述基于所述目标数据源向所述访问层返回所述连接的操作。
[0024]在一实施例中,所述方法还包括:
[0025]响应于确定所述目标数据源的类型不为所述预设数据源类型不为所述预设数据源类型,执行抛出异常操作。
[0026]根据本专利技术实施例的第二方面,提出了一种数据库连接处理装置,包括:
[0027]多数据源确定模块,用于响应于接收到访问层发送的用于获取数据库的连接的请求信息,确定所述数据库当前配置的多个数据源;
[0028]目标数据源确定模块,用于基于预设的数据源优先级以及当前存储的所述多个数据源的健康状态,从所述多个数据源中确定目标数据源;
[0029]数据库连接返回模块,用于基于所述目标数据源向所述访问层返回所述连接。
[0030]在一实施例中,所述装置还包括多数据源配置模块;
[0031]所述多数据源配置模块,包括:
[0032]读取单元,用于通过配置多个数据源的配置文件,读取所述多个数据源的原始数据;
[0033]加载单元,用于基于所述原始数据,将所述多个数据源加载到预设的动态数据源包装器中;
[0034]存放单元,用于基于所述动态数据源包装器建立所述数据库的连接,并将所述连接存放在所述多个数据源中。
[0035]在一实施例中,所述装置还包括健康状态获取模块;
[0036]所述健康状态获取模块,包括:
[0037]检测单元,用于基于设定周期检测所述多个数据源的健康状态;
[0038]存储单元,用于对检测到的所述多个数据源的健康状态进行存储。
[0039]在一实施例中,所述检测单元还用于:
[0040]建立与所述多个数据源之间的目标连接;
[0041]基于设定周期,利用所述目标连接检测所述多个数据源的健康状态。
[0042]在一实施例中,所述目标数据源确定模块,包括:
[0043]判断单元,用于按照所述数据源优先级由高到低的顺序,依次判断所述多个数据源的健康状态是否满足选择条件;
[0044]选择单元,用于响应于检测到健康状态满足所述选择条件的第一数据源,将所述第一数据源选择为目标数据源。
[0045]在一实施例中,所述数据库连接返回模块还用于响应于确定所述目标数据源的类型为预设数据源类型,执行所述基于所述目标数据源向所述访问层返回所述连接的操作。
[0046]在一实施例中,所述装置还包括:
[0047]异常抛出模块,用于响应于确定所述目标数据源的类型不为所述预设数据源类型不为所述预设数据源类型,执行抛出异常操作。
[0048]根据本专利技术实施例的第三方面,提出了一种电子设备,所述电子设备包括:
[0049]处理器;
[0050]用于存储计算机程序的存储器;
[0051]其中,所述处理器被配置为在执行所述计算机程序时实现上述任一项所述的数据库连接处理方法。
[0052]根据本专利技术实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器处理时实现上述任一项所述的数据库连接处理方法。
[0053]与现有技术相比较,本专利技术通过响应于接收到访问层发送的用于获取数据库的连接的请求信息,确定所述数据库当前配置的多个数据源,并基于预设的数据源优先级以及当前存储的所述多个数据源的健康状态,从所述多个数据源中确定目标数据源,进而基于所述目标数据源向所述访问层返回所述连接,由于确定目标数据源的过程考虑了预设的数据源优先级以及多个数据源的健康状态,相比于现有的通过静态指定数据源的方式,可以提高所确定的目标数据源的可用性以及灵活性,从而可以满足开发者对于获取高质量的数据库连接的需求。
附图说明
[0054]图1示出了根据本专利技术的一示例性实施例的数据库连接处理方法的流程图;
[0055]图2示出了根据本专利技术的如何配置所述数据库的多个数据源的示意图;
[0056]图3示出了根据本专利技术的如何获取所述多个数据源的健康状态的示意图;
[0057]图4示出了根据本专利技术的如何基于设定周期检测所述多个数据源的健康状态的示意图;
[0058]图5A示出了根据本专利技术的如何从所述多个数据源中确定目标数据源的示意本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库连接处理方法,其特征在于,包括:响应于接收到访问层发送的用于获取数据库的连接的请求信息,确定所述数据库当前配置的多个数据源;基于预设的数据源优先级以及当前存储的所述多个数据源的健康状态,从所述多个数据源中确定目标数据源;基于所述目标数据源向所述访问层返回所述连接。2.根据权利要求1所述的方法,其特征在于,还包括预先基于以下方式配置所述数据库的多个数据源:通过配置多个数据源的配置文件,读取所述多个数据源的原始数据;基于所述原始数据,将所述多个数据源加载到预设的动态数据源包装器中;基于所述动态数据源包装器建立所述数据库的连接,并将所述连接存放在所述多个数据源中。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括预先基于以下方式获取所述多个数据源的健康状态:基于设定周期检测所述多个数据源的健康状态;对检测到的所述多个数据源的健康状态进行存储。4.根据权利要求3所述的方法,其特征在于,所述基于设定周期检测所述多个数据源的健康状态,包括:建立与所述多个数据源之间的目标连接;基于设定周期,利用所述目标连接检测所述多个数据源的健康状态。5.根据权利要求1或2或4所述的方法,其特征在于,所述基于预设的数据源优先级以及当前存储的所述多个数据源的健康状态,从所述多个数据源中确定目标数据源,包括:按照所述数据源优先级由高到低的顺序,依次判断所述多个数据源的健康状态是否满足选择条件;响应于检测到健康状态满足所述选择条件的第一数据源,将所述第一数据源选择为目标数据源。6.根据权利要求1或2或4所述的方法,其特征在于,还包括:响应于确定所述目标数据源的类型为预设数据源类型,执行所述基于所述目标数据源向所述访问层返回所述连接的操作。7.根据权利要求6所述的方法,其特征在于,还包括:响应于确定所述目标数据源的类型不为所述预设数据源类型不为所述预设数据源类型,执行抛出异常操作。8.一种数据库连接处理装置,其特征在于,包括:多数据源确定模块,用于响应于接收到访问层发送的用于获取数据库的连接的请求信息,确定所述数据库当前配置的多个数据源;目标数据源确定模块,用于基于预设的数据源优先级以及当前存储的所述多个数据源的健康状态,从所述多个数据源中...

【专利技术属性】
技术研发人员:陈超雷军
申请(专利权)人:胜斗士上海科技技术发展有限公司
类型:发明
国别省市:

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

1