数据源管理方法、设备及存储介质与流程

文档序号:34734553发布日期:2023-07-12 18:16阅读:28来源:国知局
数据源管理方法、设备及存储介质与流程

本发明涉及数据库,尤其涉及一种数据源管理方法、设备及存储介质。


背景技术:

1、目前基于多租户的多数据源管理系统主要有三种方案,分别是:

2、独立数据库,即一个租户一个数据库,这种方案可以为不同的租户提供独立的数据库,有助于简化数据模型的扩展设计,满足不同租户的独特需求;如果出现故障,恢复数据比较简单。数据完全隔离,安全性最好,但成本较高。

3、共享数据库与独立schema(模式),即多个或所有租户共享数据库,但是每个租户一个schema,这种方案为安全性要求较高的租户提供了一定程度的逻辑数据隔离,每个数据库可支持更多的租户数量,但这种方案并不是完全隔离,如果出现故障,数据恢复比较困难,因为恢复数据库将牵涉到其他租户的数据。

4、共享数据库、共享schema与共享数据表,即租户共享同一个数据库、同一个schema,这是共享程度最高、隔离级别最低的模式。

5、在使用以上方案进行数据源管理时,通常难以兼顾安全性和低成本。


技术实现思路

1、本发明的主要目的在于提供一种数据源管理方法、装置、设备及计算机可读存储介质,旨在降低数据源管理的成本同时保证数据源管理的安全性。

2、为实现上述目的,本发明提供一种数据源管理方法,该数据源管理方法应用于数据源管理系统,该数据源管理系统与用户端连接,数据源管理系统包括:运行缓存区、切面组件和主数据库;其中,所述主数据库中包括多个租户数据库,各个所述租户数据库的数据业务相互隔离;

3、数据源管理方法包括以下步骤:

4、在接收到用户端发送的访问请求时,通过所述切面组件查询所述运行缓存区中是否存在与所述用户端对应的租户库数据源;

5、若所述运行缓存区存在所述租户库数据源,则通过所述切面组件解析所述用户端的连接点得到连接点信息,并基于所述连接点信息检测所述用户端是否关联有多个所述租户库数据源,其中,所述连接点信息包括对所述主数据库执行访问操作的目标方法的所属对象和参数信息;

6、若所述用户端未关联多个所述租户库数据源,则通过所述切面组件将所述用户端连接至所述租户库数据源对应的租户数据库;

7、若所述用户端关联有多个所述租户库数据源,则通过所述切面组件获取所述用户端的访问动作的切换注解,并通过所述切面组件将所述用户端连接至所述切换注解对应的注解数据源对应的租户数据库。

8、可选地,所述通过所述切面组件将所述用户端连接至所述切换注解对应的注解数据源对应的所述租户数据库的步骤,包括:

9、通过所述切面组件查询所述切换注解对应的注解数据源是否在所述运行缓存区;

10、若所述注解数据源在所述运行缓存区,则通过所述切面组件将所述用户端连接至所述切换注解对应的注解数据源对应的租户数据库。

11、可选地,在所述通过所述切面组件查询所述运行缓存区中是否存在与所述用户端对应的租户库数据源的步骤之前,所述数据源管理方法还包括:

12、将所述用户端连接至所述主数据库;

13、通过所述切面组件解析所述访问请求得到用户端标识;

14、所述通过所述切面组件查询所述运行缓存区中是否存在与所述用户端对应的租户库数据源的步骤,包括:

15、通过所述切面组件根据所述用户端标识,查询所述运行缓存区中是否存在与所述用户端标识对应的租户库数据源。

16、可选地,所述通过所述切面组件查询所述运行缓存区中是否存在与所述用户端对应的租户库数据源的步骤之后,所述数据源管理方法还包括:

17、若所述运行缓存区不存在所述租户库数据源,则通过所述切面组件创建新建数据源;

18、在所述新建数据源连通正常时将所述新建数据源加载至所述运行缓存区,并将所述用户端连接至所述新建数据源对应的租户数据库。

19、可选地,所述在所述新建数据源连通正常时将所述新建数据源加载至所述运行缓存区的步骤之前,所述数据源管理方法还包括:

20、检测所述新建数据源是否连通正常;

21、在所述检测所述新建数据源是否连通正常的步骤之后,所述数据源管理方法还包括:

22、若所述新建数据源连通异常,则将所述用户端连接至所述主数据库。

23、可选地,所述数据源管理系统还包括数据源监控组件,所述运行缓存区配置缓存算法;

24、所述数据源管理方法还包括:

25、通过所述数据源监控组件检测所述运行缓存区中的数据源数据量是否达到预设阈值;

26、若所述数据源数据量达到所述预设阈值,则按照所述缓存算法更新所述运行缓存区。

27、可选地,所述数据源管理系统还包括:切换注解组件、数据源管理组件和运行时线程组件;其中,

28、所述切换注解组件用于定义租户库数据源key属性,并用于标记多数据源注解;

29、所述数据源管理组件用于管理租户库数据源key、租户库数据源对象的键值对映射属性和主数据源对象属性;

30、所述运行时线程组件用于持有当前线程正在操作的租户库数据源key。

31、此外,为实现上述目的,本发明还提供一种数据源管理装置,该数据源管理装置应用于数据源管理系统,所述数据源管理系统与用户端连接,所述数据源管理系统包括:运行缓存区、切面组件和主数据库;其中,所述主数据库中包括多个租户数据库,各个所述租户数据库的数据业务相互隔离;

32、该数据源管理装置包括:

33、第一调用模块,用于在接收到用户端发送的访问请求时,通过所述切面组件查询所述运行缓存区中是否存在与所述用户端对应的租户库数据源;

34、第二调用模块,用于若所述运行缓存区存在所述租户库数据源,则通过所述切面组件解析所述用户端的连接点得到连接点信息,并基于所述连接点信息检测所述用户端是否关联有多个所述租户库数据源,其中,所述连接点信息包括对所述主数据库执行访问操作的目标方法的所属对象和参数信息;

35、第三调用模块,用于若所述用户端未关联多个所述租户库数据源,则通过所述切面组件将所述用户端连接至所述租户库数据源对应的租户数据库;

36、第四调用模块,用于若所述用户端关联有多个所述租户库数据源,则通过所述切面组件获取所述用户端的访问动作的切换注解,并通过所述切面组件将所述用户端连接至所述切换注解对应的注解数据源对应的租户数据库。

37、此外,为实现上述目的,本发明还提供一种数据源管理设备,所述数据源管理设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据源管理程序,所述数据源管理程序被所述处理器执行时实现上述数据源管理方法的步骤。

38、此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据源管理程序,所述数据源管理程序被处理器执行时实现上述的数据源管理方法的步骤。

39、本发明中,数据源管理系统与用户端连接,数据源管理系统包括:运行缓存区、切面组件和主数据库,其中,主数据库中包括多个租户数据库,各个租户数据库的数据业务相互隔离。本发明中,数据源管理系统中主数据库包括多个租户数据库,各个租户数据库各自的数据业务相互隔离,使得各个租户之间的数据不会相互影响,维持了数据源管理系统的安全性。

40、本发明中,通过在接收到用户端发送的访问请求时,通过切面组件查询运行缓存区中是否存在与用户端对应的租户库数据源;若运行缓存区存在租户库数据源,则通过切面组件解析用户端的连接点得到连接点信息,并基于连接点信息检测用户端是否关联有多个租户库数据源,其中,连接点信息包括对主数据库执行访问操作的目标方法的所属对象和参数信息;若用户端未关联多个租户库数据源,则通过切面组件将用户端连接至租户库数据源对应的租户数据库;若用户端关联有多个租户库数据源,则通过切面组件获取用户端的访问动作的切换注解,并通过切面组件将用户端连接至切换注解对应的注解数据源对应的租户数据库。

41、本发明中,通过设置运行缓存区,相比于每次访问直接查询数据库,本发明可以优先访问运行缓存区,节省了资源,降低了服务器的使用成本,并且运行缓存区避免了访问用户量大时损伤数据库,延长了数据库的使用寿命,降低了服务器的维护成本,从而降低了数据管理成本。

42、同时,本发明在用户端关联有多个租户库数据源时,通过切面组件获取用户端的访问动作的切换注解,并通过切面组件将用户端连接至切换注解对应的注解数据源对应的租户数据库,避免了用户端因为连接多数据源而导致无法访问的情况,提高了访问服务器的成功率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1