一种多租户服务的实现方法及系统技术方案

技术编号:35989175 阅读:57 留言:0更新日期:2022-12-17 23:03
本发明专利技术提供了一种多租户服务的实现方法及系统,该实现方法包括:获取多租户应用中单个租户所分别对应的租户信息,以基于租户信息确定目标租户;创建多租户应用对应的镜像以作为多租户应用镜像,并从多租户应用镜像中提取目标租户的镜像以作为单租户应用镜像;基于单租户应用镜像创建目标租户对应的单租户应用,将多租户应用中与目标租户匹配的租户数据同步至单租户应用,以通过同步后的单租户应用对目标租户独立提供租户服务。通过本发明专利技术,实现了租户数据、租户服务以及租户资源解耦的目的。的。的。

【技术实现步骤摘要】
一种多租户服务的实现方法及系统


[0001]本专利技术涉及计算机
,尤其涉及一种多租户服务的实现方法及系统。

技术介绍

[0002]多租户是指软件架构支持一个实例服务多个用户(即,Customer),每个用户被称之为租户(即,tenant)。软件给予租户可以对系统进行部分定制的能力(例如,用户界面颜色或者业务规则),但是他们不能定制修改软件的代码。
[0003]现有技术中多租户服务的实现方法可以整体总结为两种。一种为单实例多租户服务,即,部署一个应用实例即可满足多个用户的要求,通过配置元数据给每个用户提供不同的服务。另一种为共享数据库多租户服务,此种实现方法具体划分为两种。具体为:第一种,租户之间共享物理数据库,并对每个租户进行分库。所谓分库是指将原本存储于一个库的数据拆分至多个库,每个租户分别对应一个库以区分租户的数据。第二种,租户之间共享一个物理数据库,但是不进行分库。在数据库表中通过租户所分别对应的ID以区分租户的数据。
[0004]然而,客户在提出个性化需求时的解决方法是,在业务代码和数据库中进行扩展兼容,以实现每个客户所提出的个性化需求。而随着时间的推移,个性化需求的复杂度在不断地提升,此时代码和数据的耦合则很容易引发衰退的问题;同时,还会导致性能、稳定性等方面出现相互影响的问题。
[0005]另外,不同租户的访问量、使用频率等参数各不相同代表着,不同租户实际资源的需求是不同的。传统的单实例多租户服务模式下,资源是耦合在一起的,每个租户无法独占其个性化需求的资源规格。即使采用多实例负载均衡的方式,本质上还是共享资源。将资源规格扩容到大于峰值的状态,则会导致存在资源浪费的缺陷。
[0006]此外,共享数据库多租户服务模式下,通常是在表中增加“租户ID”以区分租户的数据,而这种方法存在数据安全的问题。一旦业务代码存在缺陷,容易导致数据越权以及数据误操作的问题发生。而且,系统一旦遭遇安全攻击,则会波及所有租户;同时,若一个租户产生数据库慢查询则会波及所有的租户。
[0007]有鉴于此,有必要对现有技术中的多租户服务实现方法予以改进,以解决上述问题。

技术实现思路

[0008]本专利技术的目的在于解决现有技术多租户服务中一个应用实例提供给多个租户及多个租户共享一个数据库所存在的数据耦合导致的性能衰退、稳定性不足等问题,以及共享一个数据库所导致的数据不安全问题。
[0009]为实现上述目的,本专利技术提供了一种多租户服务的实现方法,包括:
[0010]获取多租户应用中单个租户所分别对应的租户信息,以基于所述租户信息确定目标租户;
[0011]创建多租户应用对应的镜像以作为多租户应用镜像,并从所述多租户应用镜像中提取目标租户的镜像以作为单租户应用镜像;
[0012]基于所述单租户应用镜像创建目标租户对应的单租户应用,将多租户应用中与目标租户匹配的租户数据同步至单租户应用,以通过同步后的单租户应用对目标租户独立提供租户服务。
[0013]作为本专利技术的进一步改进,在获取多租户应用中单个租户所分别对应的租户信息之前,还包括:
[0014]获取多租户应用对应的应用负载信息,以基于所述应用负载信息确定是否执行获取多租户应用中单个租户所分别对应的租户信息的步骤。
[0015]作为本专利技术的进一步改进,所述应用负载信息通过对多租户应用的不同系统参数给予预设权重系数并计算得分予以确定;
[0016]其中,所述系统参数包括:多租户应用对应的CPU使用率、内存使用率、磁盘IO占用率、以及网络IO占用率中的一种或者任意几种组合。
[0017]作为本专利技术的进一步改进,所述租户信息包括:单个租户分别对应的租户活跃度以及租户业务量;
[0018]其中,所述租户活跃度通过单个租户对应的API请求量予以确定,所述租户业务量通过单个租户对应的数据库数据量予以实现。
[0019]作为本专利技术的进一步改进,所述API请求量包括:单个租户对应的API请求量百分位、API请求耗时百分位、以及API请求响应数据量百分位中的一种或者任意几种组合;
[0020]所述租户业务量包括:单个租户对应的累计数据量百分位、以及SQL慢查询次数百分位的平均数中的一种或者任意几种组合。
[0021]作为本专利技术的进一步改进,所述将多租户应用中与目标租户匹配的租户数据同步至单租户应用基于同步策略予以实现;
[0022]其中,所述同步策略包括:
[0023]基于多租户应用中是否产生与目标租户匹配的全量数据,以确定是否执行第一次同步策略所包含的同步步骤;
[0024]基于多租户应用中是否产生与目标租户匹配的增量数据,以确定是否执行第二次同步策略所包含的同步步骤;
[0025]基于多租户应用中是否产生与目标租户匹配的微量数据,以确定是否执行第三次同步策略所包含的同步步骤。
[0026]作为本专利技术的进一步改进,所述全量数据包括:多租户应用对应的数据库中与目标租户匹配的数据;
[0027]所述增量数据包括:上次执行同步步骤结束时间点与本次执行同步步骤开始时间点内多租户应用所产生的与目标租户匹配的操作记录;
[0028]所述微量数据包括:多租户应用中与目标租户匹配的API请求。
[0029]作为本专利技术的进一步改进所述第一次同步策略所包含的同步步骤,具体为:
[0030]建立多租户应用对应的数据库与单租户应用对应的数据库的主从关系,以将多租户应用对应的数据库中的数据同步至所述单租户应用对应的数据库;
[0031]在单租户应用对应的数据库中的数据与多租户应用对应的数据库中的数据一致
时,取消所述主从关系,同时仅保留单租户应用对应的数据库中与目标租户匹配的数据。
[0032]作为本专利技术的进一步改进,所述第二次同步策略所包含的同步步骤,包括:
[0033]重复执行对上次执行同步步骤结束时间点与本次执行同步步骤开始时间点内多租户应用所产生的与目标租户匹配的操作记录进行处理并导入单租户应用对应的数据库的步骤,直至所述上次执行同步步骤结束时间点与所述本次执行同步步骤开始时间点所形成的时间差小于预设时间。
[0034]作为本专利技术的进一步改进,所述第三次同步策略所包含的同步步骤,包括:
[0035]将多租户应用中与目标租户匹配的API请求拷贝至缓存队列,并将缓存队列中的API请求转发至单租户应用,以通过单租户应用依次响应所述与目标租户匹配的API请求,直至缓存队列为空时,切换网关路由以将与目标租户匹配的API请求直接转发至单租户应用。
[0036]作为本专利技术的进一步改进,所述通过同步后的单租户应用对目标租户独立提供租户服务之后,还包括:
[0037]将多租户应用中与目标租户匹配的租户数据删除。
[0038]基于相同专利技术思想,本专利技术还揭示了一种多租户服务的实现系统,包括:
[0039]确定模块,所述确定模块获取多租户应用中单个租户所分别对应的租户信息本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多租户服务的实现方法,其特征在于,包括:获取多租户应用中单个租户所分别对应的租户信息,以基于所述租户信息确定目标租户;创建多租户应用对应的镜像以作为多租户应用镜像,并从所述多租户应用镜像中提取目标租户的镜像以作为单租户应用镜像;基于所述单租户应用镜像创建目标租户对应的单租户应用,将多租户应用中与目标租户匹配的租户数据同步至单租户应用,以通过同步后的单租户应用对目标租户独立提供租户服务。2.根据权利要求1所述的多租户服务的实现方法,其特征在于,在获取多租户应用中单个租户所分别对应的租户信息之前,还包括:获取多租户应用对应的应用负载信息,以基于所述应用负载信息确定是否执行获取多租户应用中单个租户所分别对应的租户信息的步骤。3.根据权利要求2所述的多租户服务的实现方法,其特征在于,所述应用负载信息通过对多租户应用的不同系统参数给予预设权重系数并计算得分予以确定;其中,所述系统参数包括:多租户应用对应的CPU使用率、内存使用率、磁盘IO占用率、以及网络IO占用率中的一种或者任意几种组合。4.根据权利要求1所述的多租户服务的实现方法,其特征在于,所述租户信息包括:单个租户分别对应的租户活跃度以及租户业务量;其中,所述租户活跃度通过单个租户对应的API请求量予以确定,所述租户业务量通过单个租户对应的数据库数据量予以实现。5.根据权利要求4所述的多租户服务的实现方法,其特征在于,所述API请求量包括:单个租户对应的API请求量百分位、API请求耗时百分位、以及API请求响应数据量百分位中的一种或者任意几种组合;所述租户业务量包括:单个租户对应的累计数据量百分位、以及SQL慢查询次数百分位的平均数中的一种或者任意几种组合。6.根据权利要求1至5中任一项所述的多租户服务的实现方法,其特征在于,所述将多租户应用中与目标租户匹配的租户数据同步至单租户应用基于同步策略予以实现;其中,所述同步策略包括:基于多租户应用中是否产生与目标租户匹配的全量数据,以确定是否执行第一次同步策略所包含的同步步骤;基于多租户应用中是否产生与目标租户匹配的增量数据,以确定是否执行第二次同步策略所包含的同步步骤;基于多租户应用中是否产生与目标租户匹配的微量数据,以确定是否执行第三次同步策略所包含的同步步骤。7.根据权利要求6所述的多租户服务的实现方法,其特征在于,所述全...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:江苏安超云软件有限公司
类型:发明
国别省市:

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

1