一种多租户的应用访问方法,装置、设备以及存储介质制造方法及图纸

技术编号:39052593 阅读:7 留言:0更新日期:2023-10-12 19:45
本发明专利技术公开了一种多租户的应用访问方法、装置、设备以及存储介质,所述方法包括:接收目标用户的应用访问请求,根据应用访问请求确定目标用户的租户身份、目标用户所访问的目标应用,以及目标用户所需执行的数据库操作;判断目标应用是否配置有对应的应用级数据源,若是,则在预设的多数据源组件中获取目标应用所对应的应用级数据源,将目标应用的当前数据源切换至应用级数据源;若否,则根据租户身份,在预设的多数据源组件中获取对应的租户级数据源,将目标应用的当前数据源切换至租户级数据源;根据目标用户所需执行的数据库操作,在切换后的当前数据源中执行所述数据库操作。通过本发明专利技术可以提高用户的访问效率。本发明专利技术可以提高用户的访问效率。本发明专利技术可以提高用户的访问效率。

【技术实现步骤摘要】
一种多租户的应用访问方法,装置、设备以及存储介质


[0001]本专利技术涉及通信
,尤其涉及一种多租户的应用访问方法,装置、设备以及存储介质。

技术介绍

[0002]在SaaS云应用中常常会涉及到多租户的场景,在多租户、多应用的场景下,用户请求SaaS平台数据时,会带上租户和应用的编码标识,然后SaaS平台内部会根据不同的(租户、应用)编码区分租户和应用。在多租户SaaS平台中,通过Java编程操作数据库,使用SpringBoot框架在yml文件上配置数据库的链接信息(数据库地址、链接驱动、最大连接数等),将这些链接信息组合成为一个数据源;当有租户或者应用发起有关数据库操作的请求时,会通过与所述数据源进行链接达到操作数据库的效果。
[0003]但是在现有技术中,所有的服务都公用同一个数据源,无法限制指定租户或应用,举个例子,假设一个公用的数据源中只配置了3个最大链接,此时若应用A发起一个数据库查询请求,会占用一个数据源链接;若应用A需要执行30s,那么30s内任何租户或应用发起有关数据库操作的请求时,都会重新占用一个新的数据源链接;当数据库的3个链接数都被占用时,任何租户或应用的数据库请求就只能排队等待链接释放(例如最新的请求原本只需要执行1s,因为等待应用A执行(30s),导致实际耗时用了31s),导致应用或租户的访问效率不高。

技术实现思路

[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]相比于现有技术,本专利技术实施例具有如下有益效果:
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多租户的应用访问方法,其特征在于,包括:接收目标用户的应用访问请求,根据所述应用访问请求确定目标用户的租户身份、目标用户所访问的目标应用,以及目标用户所需执行的数据库操作;判断所述目标应用是否配置有对应的应用级数据源,若是,则在预设的多数据源组件中获取所述目标应用所对应的应用级数据源,并根据所述应用级数据源,将所述目标应用的当前数据源切换至所述应用级数据源;若否,则根据所述租户身份,在预设的多数据源组件中获取对应的租户级数据源,并根据所述租户级数据源,将所述目标应用的当前数据源切换至所述租户级数据源;根据目标用户所需执行的数据库操作,在切换后的当前数据源中执行所述数据库操作。2.如权利要求1所述的多租户的应用访问方法,其特征在于,在所述接收目标用户的应用访问请求之前,还包括:接收一数据源创建请求,根据所述数据源创建请求确定需要创建数据源的租户和应用、各租户对应的数据源配置,以及各应用对应的数据源配置;根据各租户对应的数据源配置创建各租户的租户级数据源,根据各应用对应的数据源配置创建各应用的应用级数据源;判断所述多数据源组件中是否已存在所创建的租户级数据源和应用级数据源,若不存在,则将所创建的租户级数据源和应用级数据源保存至所述多数据源组件中;若已存在,则不保存。3.如权利要求1所述的多租户的应用访问方法,其特征在于,所述在预设的多数据源组件中获取所述目标应用所对应的应用级数据源之后,还包括:将所述应用级数据源的数据源信息存放至所述应用级数据源的上下文中。4.如权利要求3所述的多租户的应用访问方法,其特征在于,所述在预设的多数据源组件中获取对应的租户级数据源之后,还包括:将所述租户级数据源的数据源信息存放至所述租户级数据源的上下文中。5.如权利要求4所述的多租户的应用访问方法,其特征在于,所述应用级数据源的数据源配置包括:最大请求连接数;所述根据所述应用级数据源,将所述目标应用的当前数据源切换至所述应用级数据源,包括:判断所述应用级数据源的当前请求连接数是否小于所述应用级数据源所对应的最大请求连接数;若小于,则将所述应用访问请求连接至所述应用级数据源中,继而将所述目标应用的当前数据源切换至所述应用级数据源,并在所述应用级数据源的上下文中提取所述所述应用级数据源的数据源信息;若不小于,则将所述应用访问请求加入至所述应用级数据源的等待连接队列中,并对所述应用级数据源的当前请求连...

【专利技术属性】
技术研发人员:潘凤巍
申请(专利权)人:广州市亿搭软件科技有限公司
类型:发明
国别省市:

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

1