【技术实现步骤摘要】
一种基于SaaS平台的多租户资源隔离方法及相关装置
[0001]本专利技术涉及
SaaS
平台部署
,具体而言,涉及一种基于
SaaS
平台的多租户资源隔离方法及相关装置
。
技术介绍
[0002]SaaS
是一种软件布局模型,其应用专为网络交付而设计,便于用户通过互联网托管
、
部署及接入
。
在一台或者一组服务器上运行的
SaaS
系统,可以为多个租户
(
客户
)
提供服务,目的是为了让多个租户在互联网环境下使用同一套程序,且保证租户间的数据隔离
。
可以看出,多租户架构的重点就是同一套程序下多个租户资源的隔离
。
目前,在共享单应用实例时,无法实现应用实例内的资源隔离和租户间的差异化定制,例如,数据库连接池
、
线程池等其他资源的隔离,发生异常时,会导致租户间的相互影响
、
付费用户会分配更多的数据库链接数量
、
而普通用户仅能使用固定少量的链接等
。
技术实现思路
[0003]本专利技术的目的在于提供一种基于
SaaS
平台的多租户资源隔离方法及相关装置,以改善上述问题
。
为了实现上述目的,本专利技术采取的技术方案如下:
[0004]第一方面,本申请提供了一种基于
SaaS
平台的多租户资源隔离方法,包括:
...
【技术保护点】
【技术特征摘要】
1.
一种基于
SaaS
平台的多租户资源隔离方法,其特征在于,包括:根据预设的
Spring Scope
接口生成对象实例化策略;获取多个租户的第二请求信息,根据每个租户的第二请求信息
,
利用对象实例化策略为每个用户生成对应的资源容器以管理租户的对象实例;自定义注解
TenantScope
类,并确定
Scope
的
value
值;实例化
TenantScope
类的一个实例,并将
Scope
的
value
值注册至
Spring
中;将需要隔离的资源的
Scope
值定义为
value
值以实现资源隔离
。2.
根据权利要求1所述的基于
SaaS
平台的多租户资源隔离方法,其特征在于
,
根据预设的
Spring Scope
接口生成对象实例化策略,还包括:分别获取每个租户对于应用程序接口的第一请求信息;在第一请求信息中添加对应的租户身份信息
,
生成第二请求信息
。3.
根据权利要求1所述的基于
SaaS
平台的多租户资源隔离方法,其特征在于
,
获取多个租户的第二请求信息之前,还包括:依次实例化持有者对象和实例化
TenantFilter
对象;将持有者对象注入
TenantFilter
对象中;注册
TenantFilter
对象到请求信息过滤器以使请求信息过滤器生效
。4.
根据权利要求1所述的基于
SaaS
平台的多租户资源隔离方法,其特征在于
,
获取多个租户的第二请求信息之后,还包括:分别从多个租户的第二请求信息中提取租户身份信息,并将全部租户身份信息存储在持有者对象的实例中;将所有提取租户身份信息后的请求信息转发至相同的计算服务中
。5.
根据权利要求4所述的基于
SaaS
平台的多租户资源隔离方法,其特征在于
,
从租户的第二请求信息中提取租户身份信息
,
包括
:
采用预设的正则表达式对租户的第二请求信息进行匹配
:
当符合匹配条件时
,
则提取第二请求信息中的租户位置上的字符串作为用户身份信息;提取路径位置上的字符串作为新的
ServletPath。6.
根据权利要求5所述的基于
SaaS
平台的多租户资源隔离方法,其特征在于
,
所述对象实例化策略根据每个租户的请求信息生成对应的资源容器以管理租户的对象实例,包括:访问新的
ServletPath
,从持有者对象的实例中获取租户身份信息;根据租户身份信息判断所述用户是否有用于保存对象的容器中:若不存在,则为所述用户创建容器;否则,返回所述用户的容器;获取所述用户包含的对象,判断所述对象是否已存在与所述用户的容器内:若不存在,则实例化所述对象并保存至所述用户的容器中;否则,返回容器中的所述对象
。7.
一种基于
SaaS
平台的多租户资源隔离装置,其特征在于,包括:第一生成模块:用于根据预设的
Spring Scope
接口生成对象实例化策略;第二生成模块:用于获取多个租户的第二请求信息,根据每个租户的第二请求信...
【专利技术属性】
技术研发人员:聂文彬,
申请(专利权)人:中信百信银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。