本申请实施例涉及多租户数据隔离领域,更具体的,是多租户数据隔离方法、服务器以及计算机可读存储介质,用于在提高资源利用率的情况下,对多租户进行数据隔离。
背景技术:
1、软件即服务(softwareasaservice,saas)是一种软件应用模式,即通过互联网提供软件服务,租户按需租用,通常一个软件可以同时服务多个租户,通过降低多个租户中每个租户的成本,可以大大降低服务交付、运维成本,实现最大化收益。然而,在多租户模式下,由于软件堆栈是共享的,生成和使用的数据也是多租户共享,从而多租户之间的数据会相互干扰,进而导致业务错误的问题。因此,需要进行多租户数据隔离。
2、现有的多租户数据隔离方法可以是,在客户端通过目标域名发送目标租户的访问请求之后,先确定目标域名对应的目标标签,并将标签添加至访问请求中,然后接收添加了目标标签的访问请求,再根据目标租户的目标标签路由到对应的服务器组,其中,服务器组包括web服务和数据库服务,从而实现多租户共享web服务和数据库服务。这种多租户数据隔离方法可以提供独立的web服务,独立的数据库服务,独立的网络服务,独立的域名服务,比较适用于付费能力较强的大型租户。
3、但是,对于小型租户,存在单个租户资源占用较少,租户之间占用资源不均衡,且单租户付费能力较差的情况,比如,个别租户业务发展较好时,占用的系统资源远超平均线,又比如,个别租户访问频次较少,单次进行业务时占用较多的服务资源。因此,当对小型租户进行多租户数据隔离时,服务资源利用率较低。
技术实现思路
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、获得所述客户端通过统一域名发送的所述目标租户的所述访问请求。
29、第二方面,本申请实施例提供了一种服务器,包括:
30、获得单元,用于获得客户端发送的目标租户的访问请求;
31、确定单元,用于基于预设数据库映射表确定所述目标租户对应的目标数据库;所述预设数据库映射表为基于数据库的负载情况确定的;
32、访问单元,用于根据所述访问请求向所述目标数据库访问所述目标租户的业务数据;
33、返回单元,用于向所述客户端返回所述目标租户的业务数据。
34、第三方面,本申请实施例提供了一种服务器,包括:
35、中央处理器,存储器,输入输出接口,有线或无线网络接口以及电源;
36、所述存储器为短暂存储存储器或持久存储存储器;
37、所述中央处理器配置为与所述存储器通信,并执行所述存储器中的指令操作以执行前述多租户数据隔离方法。
38、第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质包括指令,当指令在计算机上运行时,使得计算机执行前述多租户数据隔离方法。
39、第五方面,本申请实施例提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行前述多租户数据隔离方法。
40、从以上技术方案可以看出,本申请实施例具有以下优点:可以获得客户端发送的目标租户的访问请求,基于预设数据库映射表确定所述目标租户对应的目标数据库;所述预设数据库映射表为基于数据库的负载情况确定的,根据所述访问请求向所述目标数据库访问所述目标租户的业务数据,向所述客户端返回所述目标租户的业务数据。可以根据数据库的负载情况确定目标租户对应的目标数据库,当对小型租户进行多租户数据隔离时,可以实现资源共享和资源最大化利用,提高了服务资源的利用率。
1.一种多租户数据隔离方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述目标租户为目标注册租户;所述基于预设数据库映射表确定所述目标租户对应的目标数据库之前,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述针对每个注册租户,根据预设规则确定所述注册租户对应的数据库,包括:
4.根据权利要求2所述的方法,其特征在于,所述针对每个注册租户,根据预设规则确定所述注册租户对应的数据库,包括:
5.根据权利要求2所述的方法,其特征在于,所述获得客户端发送的目标租户的访问请求之后,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述根据所述访问请求向所述目标数据库访问所述目标租户的业务数据,包括:
7.根据权利要求1所述的方法,其特征在于,所述获得客户端发送的目标租户的访问请求,包括:
8.一种服务器,其特征在于,包括:
9.一种服务器,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1至7中任意一项所述的方法。