CN112100262A - 多租户SaaS平台快速搭建及动态扩容的方法及系统 - Google Patents

多租户SaaS平台快速搭建及动态扩容的方法及系统 Download PDF

Info

Publication number
CN112100262A
CN112100262A CN202010973192.XA CN202010973192A CN112100262A CN 112100262 A CN112100262 A CN 112100262A CN 202010973192 A CN202010973192 A CN 202010973192A CN 112100262 A CN112100262 A CN 112100262A
Authority
CN
China
Prior art keywords
tenant
data
management
database
layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010973192.XA
Other languages
English (en)
Inventor
卢宪政
左赋斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Zhishuyun Information Technology Co ltd
Original Assignee
Nanjing Zhishuyun Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Zhishuyun Information Technology Co ltd filed Critical Nanjing Zhishuyun Information Technology Co ltd
Priority to CN202010973192.XA priority Critical patent/CN112100262A/zh
Publication of CN112100262A publication Critical patent/CN112100262A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Abstract

本发明公开了一种多租户SaaS平台快速搭建及动态扩容的系统及其方法,包括数据层,包括主库和多个相互独立的租户库,所述租户库可根据管理端用户请求进行创建或删除;数据源路由层,介于数据层和业务应用层之间,接收业务应用层发出的数据交互请求命令,并为业务应用层和数据层数据交互提供接口;利用加权随机算法动态创建数据库,根据租户的身份动态切换数据源,达到租户间业务数据的隔离;业务应用层,用于实现管理端、租户端的日常业务操作;管理端用于实现系统设置及系统监控等操作;租户端用于实现租户所使用的业务功能模块。本发明搭建过程快捷高效,数据安全可靠,可实现数据库的动态扩容和分配,既实现租户间数据在物理层面的隔离,同时又支持数据库服务器的负载均衡和无限扩展。

Description

多租户SaaS平台快速搭建及动态扩容的方法及系统
技术领域
本发明涉及一种多租户SaaS平台快速搭建及动态扩容的方法及其系统,属于平台搭建技术领域。
背景技术
SaaS,是Software-as-a-Service的缩写名称,意思为软件即服务,即通过网络提供软件服务。SaaS平台供应商将应用软件统一部署在自己的服务器上,客户可以根据工作实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得Saas平台供应商提供的服务。
多租户(Multi Tenancy/Tenant)SaaS是一种软件架构,用于实现一个平台同时为多个租户提供服务。在这种架构上,多个租户共享同样的硬件配置和应用程序,并实现数据的隔离。应用程序被设计成能将自己的数据、配置进行虚拟的分区,以便每个租户都感觉到自己是在一个私有的、可定制化的应用实例上工作。
由于单台服务器的硬件处理能力有限,随着用户量的不断增长,服务器的压力也会随之增加,因此,急需一种能够随着用户量增长而进行动态扩容的平台搭建方法。
发明内容
针对上述现有技术存在的问题,本发明提供一种多租户SaaS平台快速搭建及动态扩容的方法及其系统,能够实现租户间数据在物理层面的隔离,同时又支持数据库服务器的负载均衡和无限扩展,搭建过程快捷高效,数据安全可靠。
为了实现上述目的,本发明采用如下技术方案:一种多租户SaaS平台快速搭建及动态扩容的系统,包括:
数据层,用于存储数据,包括主库和多个相互独立的租户库,所述主库用于存储由平台统一配置的数据,所述租户库用户存储对应租户的相关信息,所述租户库可根据管理端用户请求进行创建或删除;
数据源路由层,介于数据层和业务应用层之间,接收业务应用层发出的数据交互请求命令,并为业务应用层和数据层数据交互提供接口;利用加权随机算法动态创建数据库,根据租户的身份动态切换数据源,达到租户间业务数据的隔离;
业务应用层,用于实现管理端、租户端的日常业务操作,响应管理端、租户端的用户请求,并向数据层传递用户请求获取数据层的数据;
管理端,用于实现系统设置及系统监控操作;
租户端,用于实现租户所使用的业务功能模块。
多租户SaaS平台快速搭建及动态扩容的系统中,所述数据源路由层包括数据库路由控制引擎、数据源注册、数据源匹配和数据源切换模块,通过数据源注册和数据源切换能将数据库扩展到多台服务器,新租户入驻时,系统按照数据源的可用状态和权重随机分配一台可用的服务器作为数据库存储,并记录该服务器的ip地址、数据库用户名和密码。
多租户SaaS平台快速搭建及动态扩容的系统中,所述业务应用层包括平台管理应用模块、租户应用模块、日志记录模块和权限控制模块,所述平台管理应用模块用于向管理端提供管理服务,包括租户入驻、租户费用、租户服务、用户权限、数据字典、定时任务、内容发布、系统参数、在线客服和数据分析模块;所述租户应用模块用于向租户端提供管理服务,包括企业信息、员工管理、部门管理、职务权限、线索管理、客户管理、群组管理、营销管理、待办事项、任务工单、营销流程和话术管理模块。
多租户SaaS平台快速搭建及动态扩容的系统中,整个系统包括三种用户:平台管理员、租户管理员和租户员工,一个租户相当于一个企业;平台管理员进行系统管理、租户入驻管理和租户费用管理操作,不能操作租户的内部业务;租户管理员账号在创建租户基本信息时同步生成,租户管理员进行企业信息管理、部门管理、职务权限管理、员工管理、流程/参数配置业务操作;租户员工账号在创建企业员工时同步生成,用于进行线索管理、客户管理、群组管理的业务操作。
一种多租户SaaS平台快速搭建及动态扩容的方法,包括:
构建基本架构:构建包括数据层、数据源路由层、业务应用层、管理端和租户端的架构,所述数据层用于存储数据,包括多个数据库,其中一个作为主库,其余作为租户库,各个租户库相互独立,所述租户库可根据管理端用户请求进行创建或删除;所述数据源路由层用于根据用户请求动态创建数据库,根据租户的身份动态切换数据源,达到租户间业务数据的隔离;所述业务应用层用于实现操作终端的日常业务操作,响应操作终端的用户请求,并向数据层传递用户请求获取数据层的数据;
租户创建:将待入驻租户的基本信息录入,录入的租户信息被保存至主库,生成租户ID、租户账号、初始密码,并将租户数据库的建库消息存入消息队列等待租户端依次处理;租户端开启定时任务,不断从消息队列列表里获取待创建的租户库信息,依次为其建库,并将建库情况返回至管理端;管理端根据建库情况处理建库结果,更新租户状态;若建库成功,则租户入驻流程完成;若建库失败,则平台管理员可重新发送建库请求至租户端进行重试,直至建库完成;
各个租户创建、删除和权限的设定均由平台管理员统一管理配置。
多租户SaaS平台快速搭建及动态扩容的方法中,所述租户创建中通过加权随机选择数据库服务器进行创建租户库,为租户分配相应的租户库,并切换至新创建的数据库为租户创建租户表;租户管理员在租户入驻时同步创建,租户创建成功后,随机根据租户管理员手机号向租户表中插入一条管理员账户数据,租户员工的创建、删除及权限由租户管理员操作。
多租户SaaS平台快速搭建及动态扩容的方法中,租户被禁用后所有员工均无法登录,租户启用后恢复正常;租户删除分为两步,
第一步,删除:提醒用户删除后将进入回收站,此时只是将租户标记为临时删除,可以从回收站还原或者彻底删除;租户被删除后,所有员工账号都无法登登录,还原后恢复正常;
第二步:彻底删除,提醒用户彻底删除后,所有数据都将被清空,用户确认操作后,租标记为彻底删除,此时租户数据不支持还原恢复,视为永久删除。
多租户SaaS平台快速搭建及动态扩容的方法中,所述租户端系统启动时默认初始化两个数据源:MASTER和TENANT,MASTER连接主库,用于在登录是校验租户状态;TENANT连接租户默认tanant_0,用于获取数据字典、菜单、系统参数平台公共配置数据;当租户登录时,系统根据租户ID在TENANT数据源的基础上动态创建新的数据源,即将tanant_0库改为租户库,则新的数据源将会连接到tanant_ID上。
多租户SaaS平台快速搭建及动态扩容的方法中,所述待入驻租户的基本信息括公司名称、城市、地址、联系人姓名、联系人手机、初始密码、邮箱,并以手机号作为用户唯一标识。
与现有的技术相比,本发明具有如下优点:
1)搭建过程快捷高效:通过清晰有效的数据源注册、切换流程,租户入驻处理流程,用户管理和登录流程等,可以很方便的实现多租户SaaS平台的快速搭建与调试。
2)数据安全可靠:数据库采用主库+多租户库的方式实现,为每个租户创建一个独立的数据库,使得各租户间的数据在物理层面进行隔离,无需引入额外的逻辑程序进行处理即可实现数据的安全访问和操作。可通过多个独立任务实现数据库备份与恢复操作,单个租户数据库的损坏不影响其他租户的数据的使用。
3)支持通过简单的配置将新的服务器纳入到平台体系中,且数据路由层支持多数据源的实时注册和动态切换,在创建租户数据库时可根据实时性能指标及权重值动态分配数据库服务器,实现数据库服务器动态扩容。
总的来说,本发明基于数据源的动态注册和切换流程,依靠加权随机算法实现数据库的动态扩容和分配,既实现租户间数据在物理层面的隔离,同时又支持数据库服务器的负载均衡和无限扩展;即可根据需求快速部署数据库服务器和Web服务器并注册到现有平台中。
附图说明
图1为本发明的总体架构图;
图2为本发明租户入驻流程图;
图3为本发明租户用户登陆流程图;
图4为本发明租户权限控制示意图。
具体实施方式
下面结合附图对本发明实施中的技术方案进行清楚,完整的描述,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1至图4所示,本发明提供的一种多租户SaaS平台快速搭建及动态扩容的系统,包括:
数据层,用于存储数据,包括主库和多个相互独立的租户库,所述主库用于存储由平台统一配置的数据,所述租户库用户存储对应租户的相关信息,所述租户库可根据管理端用户请求进行创建或删除;
数据源路由层,介于数据层和业务应用层之间,接收业务应用层发出的数据交互请求命令,并为业务应用层和数据层数据交互提供接口;利用加权随机算法动态创建数据库,根据租户的身份动态切换数据源,达到租户间业务数据的隔离;
业务应用层,用于实现管理端、租户端的日常业务操作,响应管理端、租户端的用户请求,并向数据层传递用户请求获取数据层的数据;
管理端,用于实现系统设置及系统监控操作;
租户端,用于实现租户所使用的业务功能模块。
所述数据源路由层包括数据库路由控制引擎、数据源注册、数据源匹配和数据源切换模块,通过数据源注册和数据源切换能将数据库扩展到多台服务器,新租户入驻时,系统按照数据源的可用状态和权重随机分配一台可用的服务器作为数据库存储,并记录该服务器的ip地址、数据库用户名和密码。
提供数据源注册管理功能,用于管理数据源的ip、用户名、密码、权重及可用状态等信息。对新入驻租户分配数据库服务器时,按照数据源的可用状态和权重进行随机分配,即只分配可用的服务器,且权重越高被分配到的概率越大,分配概率与权重的计算过程如下:
如有4个元素A、B、C、D,权重分别为1、2、3、4,随机结果中A:B:C:D的比例要为1:2:3:4。总体思路:累加每个元素的权重A(1)-B(3)-C(6)-D(10),则4个元素的的权重管辖区间分别为[0,1)、[1,3)、[3,6)、[6,10)。然后随机出一个[0,10)之间的随机数。落在哪个区间,则该区间之后的元素即为按权重命中的元素。
所述业务应用层包括平台管理应用模块、租户应用模块、日志记录模块和权限控制模块,所述平台管理应用模块用于向管理端提供管理服务,包括租户入驻、租户费用、租户服务、用户权限、数据字典、定时任务、内容发布、系统参数、在线客服和数据分析模块;所述租户应用模块用于向租户端提供管理服务,包括企业信息、员工管理、部门管理、职务权限、线索管理、客户管理、群组管理、营销管理、待办事项、任务工单、营销流程和话术管理模块。
整个系统包括三种用户:平台管理员、租户管理员和租户员工,一个租户相当于一个企业;平台管理员进行系统管理、租户入驻管理和租户费用管理操作,不能操作租户的内部业务;租户管理员账号在创建租户基本信息时同步生成,租户管理员进行企业信息管理、部门管理、职务权限管理、员工管理、流程/参数配置业务操作;租户员工账号在创建企业员工时同步生成,用于进行线索管理、客户管理、群组管理的业务操作。
各租户拥有自己的角色和权限,相互不能影响。不同租户的数据、服务在物理上共享,而在逻辑上完全隔离,对于每个租户来说这个系统好像只为自己服务。为了确保系统数据的安全性,使用户能放心地将商业数据放在系统上使用。
一种多租户SaaS平台快速搭建及动态扩容的方法,包括:
构建基本架构:构建包括数据层、数据源路由层、业务应用层、管理端和租户端的架构,所述数据层用于存储数据,包括多个数据库,其中一个作为主库,其余作为租户库,各个租户库相互独立,所述租户库可根据管理端用户请求进行创建或删除;所述数据源路由层用于根据用户请求动态创建数据库,根据租户的身份动态切换数据源,达到租户间业务数据的隔离;所述业务应用层用于实现操作终端的日常业务操作,响应操作终端的用户请求,并向数据层传递用户请求获取数据层的数据;
租户创建:将待入驻租户的基本信息录入,录入的租户信息被保存至主库,生成租户ID、租户账号、初始密码,并将租户数据库的建库消息存入消息队列等待租户端依次处理;租户端开启定时任务,不断从消息队列列表里获取待创建的租户库信息,依次为其建库,并将建库情况返回至管理端;管理端根据建库情况处理建库结果,更新租户状态;若建库成功,则租户入驻流程完成;若建库失败,则平台管理员可重新发送建库请求至租户端进行重试,直至建库完成;
各个租户创建、删除和权限的设定均由平台管理员统一管理配置。
所述待入驻租户的基本信息括公司名称、城市、地址、联系人姓名、联系人手机(作为管理员登录)、初始密码(初期录入,后期自动生成并通过短信发送到联系人)、邮箱,并以手机号作为用户唯一标识。初期可由平台管理员统一录入并开通,后期可拓展到客户自己注册后由平台审核开通。
如图2所示,平台管理员录入租户信息后,会在主库生成租户基本信息、租户ID、租户账户、租户登录用户等数据,并向租户端发送一条建库请求,建库请求发送后无需等待处理结果,后面通过页面刷新查询建库处理结果(异步过程)。如果建库成功,则租户入驻流程完成;如果建库失败,则平台管理员可以重新发送建库请求至租户端进行重试,直至建库完成。
所述租户创建中通过加权随机选择数据库服务器进行创建租户库,为租户分配相应的租户库,并切换至新创建的数据库为租户创建租户表;租户管理员在租户入驻时同步创建,租户创建成功后,随机根据租户管理员手机号向租户表中插入一条管理员账户数据,租户员工的创建、删除及权限由租户管理员操作。
租户端服务启动时,开启定时任务(线程),不断的从Redis队列里获取待创建的租户库信息,取出的信息按如下流程处理。
1)创建数据库
create database tenant_201;\\其中201为租户ID
2)切换到新创建的数据库
use tenant_201;
3)执行建表语句
source/home/template.sql;
执行模板文件template.sql里的语句。
每个租户对应一个数据库,但是共用一套后台代码,需要在用户操作数据库的时候根据当前用户动态切换数据源。所述租户端系统启动时默认初始化两个数据源:MASTER和TENANT,MASTER连接主库,用于在登录是校验租户状态;TENANT连接租户默认tanant_0,用于获取数据字典、菜单、系统参数平台公共配置数据;当租户登录时,系统根据租户ID在TENANT数据源的基础上动态创建新的数据源,即将tanant_0库改为租户库,如租户ID为25,则新的数据源将会连接到tanant_25上。如果需要临时切回MASTER主库或TENANT主库,需要在Mapper层通过注解@DataSource(value=DataSourceType.MASTER)或@DataSource(value=DataSourceType.TENANT)实现。数据源注册和切换控制流程简单,对第三方服务依赖比较少,效率高,纯代码开发,对租户数据保护安全性高。
所述租户被禁用后所有员工均无法登录,租户启用后恢复正常;租户删除分为两步,
第一步,删除:提醒用户删除后将进入回收站,此时只是将租户标记为临时删除,可以从回收站还原或者彻底删除;租户被删除后,所有员工账号都无法登登录,还原后恢复正常;
第二步:彻底删除,提醒用户彻底删除后,所有数据都将被清空,用户确认操作后,租标记为彻底删除,此时租户数据不支持还原恢复,视为永久删除。
租户用户分为租户管理员和租户员工两种类型,基本信息包括:所属租户ID、姓名、手机号、职位、头像、密码、邮箱、类型(管理员/员工)、状态(启用/禁用/离职)等,由于手机号作为用户唯一标识,故不能重复。
租户管理员在租户入驻时同步创建,租户库创建成功后,随即根据租户管理员手机号插入一条管理员账户数据,账户类型为01。
提交租户信息时就需判断手机号是否已存在(Redis:exists key判断),创建成功的租户管理员手机号和租户ID对应关系保存到Redis,key为手机号码,value为租户ID(Redis:setnx 138***100001)。
租户员工由租户管理员创建,支持单条创建和批量,账户类型为02。员工手机号在整个平台内不能重复,也不能同时属于其他租户(Redis:exists key判断)。创建成功的租户员工手机号和租户ID对应关系保存到Redis,key为固定前缀tp_+手机号码,value为租户ID(Redis:setnx tp_138***100001)。
租户管理员可以将员工账号停用,停用后的员工账号进入“员工回收站”,管理员可以从回收站恢复或删除该员工。被停用的员工账号无法登录,从回收站恢复后即可正常登录。
删除员工账号即视为该员工已离职,其账号将被删除,与其相关的客户信息等将会保留。
租户用户登录流程如图3所示。
租户端菜单权限的管理按权限划分,包括:功能列表、操作权限(增删改查)和数据范围等。租户菜单管理功能向所有租户屏蔽,由平台管理员统一配置,数据保存到tenant_0库。租户用户和角色获取相关菜单时,通过sql层实现跨库查询,如left join tenant_0.sys_menu。菜单(按钮)分为基础和高级两类,所有用户默认拥有基础菜单(按钮),无需配置更改,高级菜单(按钮)需要通过角色分配后才能看到和使用。菜单(按钮)包含“是否租户定制”属性,用于维护有定制需求的租户菜单和权限。租户权限控制见图4所示。
考虑到数据安全性,当调用后端接口时,需要做用户身份认证和权限验证。
基于token(JWT)的身份认证,不存在回话状态,在用户初次登录的时候,校验用户账号密码,成功后给其生成一个token,token=用户ID+时间戳+过期时间+一个自己平台规定的签名,使用jjwt生成一个令牌,然后对其进行存库(Redis),用户每次访问接口,都会在头部Headers中带上token,后来拦截器对其进行拦截,如果token为空或错误则让其登录,如果有token,获取token进行其解析,取出里面的用户ID,根据用户ID查询数据库中所存token,判断其是否正确,正确使其继续下面的操作,错误则提示登录。
每个token的有效时间默认为7天,用户每次调用接口,token验证通过后,都会刷新token的有效时间。如果用户超过7天未调用任何接口,则其token自动失效,用户需重新登录获取新的token。
集成jwt-permission框架,使用其内置的TokenInterceptor校验token的有效性(是否正确、是否过期等),使用注解@AccessToken获取token并解析出用户ID,使用@RequiresPermissions(“XXX”)校验是否拥有权限,XXX为权限字符,即后台菜单和按钮的权限字符。
综上所述,本发明通过清晰有效的数据源注册、切换流程,租户入驻处理流程,用户管理和登录流程等,可以很方便的实现多租户SaaS平台的快速搭建与调试,整个搭建过程快捷高效;数据库采用主库+多租户库的方式实现,为每个租户创建一个独立的数据库,使得各租户间的数据在物理层面进行隔离,无需引入额外的逻辑程序进行处理即可实现数据的安全访问和操作。可通过多个独立任务实现数据库备份与恢复操作,单个租户数据库的损坏不影响其他租户的数据的使用,数据安全可靠;支持通过简单的配置将新的服务器纳入到平台体系中,且数据路由层支持多数据源的实时注册和动态切换,在创建租户数据库时可根据实时性能指标及权重值动态分配数据库服务器,实现数据库服务器动态扩容。最终,本发明基于数据源的动态注册和切换流程,依靠加权随机算法实现数据库的动态扩容和分配,既实现租户间数据在物理层面的隔离,同时又支持数据库服务器的负载均衡和无限扩展;即可根据需求快速部署数据库服务器和Web服务器并注册到现有平台中。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神和基本特征的情况下,能够以其他的具体形式实现本发明。此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

Claims (9)

1.一种多租户SaaS平台快速搭建及动态扩容的系统,其特征在于,包括:
数据层,用于存储数据,包括主库和多个相互独立的租户库,所述主库用于存储由平台统一配置的数据,所述租户库用户存储对应租户的相关信息,所述租户库可根据管理端用户请求进行创建或删除;
数据源路由层,介于数据层和业务应用层之间,接收业务应用层发出的数据交互请求命令,并为业务应用层和数据层数据交互提供接口;利用加权随机算法动态创建数据库,根据租户的身份动态切换数据源,达到租户间业务数据的隔离;
业务应用层,用于实现管理端、租户端的日常业务操作,响应管理端、租户端的用户请求,并向数据层传递用户请求获取数据层的数据;
管理端,用于实现系统设置及系统监控操作;
租户端,用于实现租户所使用的业务功能模块。
2.根据权利要求1所述的一种多租户SaaS平台快速搭建及动态扩容的系统,其特征在于,所述数据源路由层包括数据库路由控制引擎、数据源注册、数据源匹配和数据源切换模块,通过数据源注册和数据源切换能将数据库扩展到多台服务器,新租户入驻时,系统按照数据源的可用状态和权重随机分配一台可用的服务器作为数据库存储,并记录该服务器的ip地址、数据库用户名和密码。
3.根据权利要求1所述的一种多租户SaaS平台快速搭建及动态扩容的系统,其特征在于,所述业务应用层包括平台管理应用模块、租户应用模块、日志记录模块和权限控制模块,所述平台管理应用模块用于向管理端提供管理服务,包括租户入驻、租户费用、租户服务、用户权限、数据字典、定时任务、内容发布、系统参数、在线客服和数据分析模块;所述租户应用模块用于向租户端提供管理服务,包括企业信息、员工管理、部门管理、职务权限、线索管理、客户管理、群组管理、营销管理、待办事项、任务工单、营销流程和话术管理模块。
4.根据权利要求1所述的一种多租户SaaS平台快速搭建及动态扩容的系统,其特征在于,整个系统包括三种用户:平台管理员、租户管理员和租户员工,一个租户相当于一个企业;平台管理员进行系统管理、租户入驻管理和租户费用管理操作,不能操作租户的内部业务;租户管理员账号在创建租户基本信息时同步生成,租户管理员进行企业信息管理、部门管理、职务权限管理、员工管理、流程/参数配置业务操作;租户员工账号在创建企业员工时同步生成,用于进行线索管理、客户管理、群组管理的业务操作。
5.一种多租户SaaS平台快速搭建及动态扩容的方法,其特征在于,包括:
构建基本架构:构建包括数据层、数据源路由层、业务应用层、管理端和租户端的架构,所述数据层用于存储数据,包括多个数据库,其中一个作为主库,其余作为租户库,各个租户库相互独立,所述租户库可根据管理端用户请求进行创建或删除;所述数据源路由层用于根据用户请求动态创建数据库,根据租户的身份动态切换数据源,达到租户间业务数据的隔离;所述业务应用层用于实现操作终端的日常业务操作,响应操作终端的用户请求,并向数据层传递用户请求获取数据层的数据;
租户创建:将待入驻租户的基本信息录入,录入的租户信息被保存至主库,生成租户ID、租户账号、初始密码,并将租户数据库的建库消息存入消息队列等待租户端依次处理;租户端开启定时任务,不断从消息队列列表里获取待创建的租户库信息,依次为其建库,并将建库情况返回至管理端;管理端根据建库情况处理建库结果,更新租户状态;若建库成功,则租户入驻流程完成;若建库失败,则平台管理员可重新发送建库请求至租户端进行重试,直至建库完成;
各个租户创建、删除和权限的设定均由平台管理员统一管理配置。
6.根据权利要求5所述的一种多租户SaaS平台快速搭建及动态扩容的方法,其特征在于,所述租户创建中通过加权随机选择数据库服务器进行创建租户库,为租户分配相应的租户库,并切换至新创建的数据库为租户创建租户表;租户管理员在租户入驻时同步创建,租户创建成功后,随机根据租户管理员手机号向租户表中插入一条管理员账户数据,租户员工的创建、删除及权限由租户管理员操作。
7.根据权利要求5所述的一种多租户SaaS平台快速搭建及动态扩容的方法,其特征在于,租户被禁用后所有员工均无法登录,租户启用后恢复正常;租户删除分为两步,
第一步,删除:提醒用户删除后将进入回收站,此时只是将租户标记为临时删除,可以从回收站还原或者彻底删除;租户被删除后,所有员工账号都无法登登录,还原后恢复正常;
第二步:彻底删除,提醒用户彻底删除后,所有数据都将被清空,用户确认操作后,租标记为彻底删除,此时租户数据不支持还原恢复,视为永久删除。
8.根据权利要求5所述的一种多租户SaaS平台快速搭建及动态扩容的方法,其特征在于,所述租户端系统启动时默认初始化两个数据源:MASTER和TENANT,MASTER连接主库,用于在登录是校验租户状态;TENANT连接租户默认tanant_0,用于获取数据字典、菜单、系统参数平台公共配置数据;当租户登录时,系统根据租户ID在TENANT数据源的基础上动态创建新的数据源,即将tanant_0库改为租户库,则新的数据源将会连接到tanant_ID上。
9.根据权利要求5所述的一种多租户SaaS平台快速搭建及动态扩容的方法,其特征在于,所述待入驻租户的基本信息括公司名称、城市、地址、联系人姓名、联系人手机、初始密码、邮箱,并以手机号作为用户唯一标识。
CN202010973192.XA 2020-09-16 2020-09-16 多租户SaaS平台快速搭建及动态扩容的方法及系统 Pending CN112100262A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010973192.XA CN112100262A (zh) 2020-09-16 2020-09-16 多租户SaaS平台快速搭建及动态扩容的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010973192.XA CN112100262A (zh) 2020-09-16 2020-09-16 多租户SaaS平台快速搭建及动态扩容的方法及系统

Publications (1)

Publication Number Publication Date
CN112100262A true CN112100262A (zh) 2020-12-18

Family

ID=73759429

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010973192.XA Pending CN112100262A (zh) 2020-09-16 2020-09-16 多租户SaaS平台快速搭建及动态扩容的方法及系统

Country Status (1)

Country Link
CN (1) CN112100262A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112633764A (zh) * 2020-12-31 2021-04-09 北京捷通华声科技股份有限公司 智能客服系统及客户服务方法
CN112905708A (zh) * 2021-03-31 2021-06-04 浙江太美医疗科技股份有限公司 基于SaaS系统的数据库操作方法及系统
CN113114685A (zh) * 2021-04-14 2021-07-13 北京滴普科技有限公司 一种支撑多数据源安全融合的安全沙箱系统
CN113271334A (zh) * 2021-03-25 2021-08-17 西藏宁算科技集团有限公司 基于SaaS场景下的业务策略分发方法、装置及电子设备
CN113495797A (zh) * 2021-06-22 2021-10-12 上海百秋电子商务有限公司 一种消息队列及消费者动态创建方法及系统
CN113781159A (zh) * 2021-08-23 2021-12-10 河南宇章信息技术有限公司 一种基于多租户SaaS技术的智能财税一体化服务平台
CN114546563A (zh) * 2022-02-23 2022-05-27 北京京航计算通讯研究所 一种多租户页面访问控制方法和系统
CN115099731A (zh) * 2022-08-29 2022-09-23 江苏小旗欧飞科技有限公司 基于SaaS模式下的数字生活管理系统及方法
CN116760705A (zh) * 2023-08-18 2023-09-15 苏州思萃工业互联网技术研究所有限公司 基于综合能源管理系统的多租户平台隔离管理系统及方法
WO2023231681A1 (zh) * 2022-05-31 2023-12-07 京东方科技集团股份有限公司 账号创建方法、物联网多租户系统、设备、程序和介质
CN117389684A (zh) * 2023-10-13 2024-01-12 河北云在信息技术服务有限公司 一种SaaS多租户数据隔离方法和系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130238557A1 (en) * 2012-03-08 2013-09-12 International Business Machines Corporation Managing tenant-specific data sets in a multi-tenant environment
CN107172192A (zh) * 2017-06-19 2017-09-15 西安工程大学 基于混合存储的SaaS网络管理系统数据管理框架
CN109634717A (zh) * 2018-12-10 2019-04-16 河南小明出行科技有限公司 一种分时租赁SaaS多用户服务平台
CN110532074A (zh) * 2019-08-08 2019-12-03 北明云智(武汉)网软有限公司 一种多租户模式SaaS服务集群环境的任务调度方法及系统
CN110533509A (zh) * 2019-08-28 2019-12-03 上海仪电智能科技有限公司 一种多租户用户管理服务系统
CN111367887A (zh) * 2020-03-03 2020-07-03 威海新北洋数码科技有限公司 多租户数据共享系统及其管理方法、数据库部署方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130238557A1 (en) * 2012-03-08 2013-09-12 International Business Machines Corporation Managing tenant-specific data sets in a multi-tenant environment
CN107172192A (zh) * 2017-06-19 2017-09-15 西安工程大学 基于混合存储的SaaS网络管理系统数据管理框架
CN109634717A (zh) * 2018-12-10 2019-04-16 河南小明出行科技有限公司 一种分时租赁SaaS多用户服务平台
CN110532074A (zh) * 2019-08-08 2019-12-03 北明云智(武汉)网软有限公司 一种多租户模式SaaS服务集群环境的任务调度方法及系统
CN110533509A (zh) * 2019-08-28 2019-12-03 上海仪电智能科技有限公司 一种多租户用户管理服务系统
CN111367887A (zh) * 2020-03-03 2020-07-03 威海新北洋数码科技有限公司 多租户数据共享系统及其管理方法、数据库部署方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112633764A (zh) * 2020-12-31 2021-04-09 北京捷通华声科技股份有限公司 智能客服系统及客户服务方法
CN113271334A (zh) * 2021-03-25 2021-08-17 西藏宁算科技集团有限公司 基于SaaS场景下的业务策略分发方法、装置及电子设备
CN112905708A (zh) * 2021-03-31 2021-06-04 浙江太美医疗科技股份有限公司 基于SaaS系统的数据库操作方法及系统
CN113114685A (zh) * 2021-04-14 2021-07-13 北京滴普科技有限公司 一种支撑多数据源安全融合的安全沙箱系统
CN113114685B (zh) * 2021-04-14 2021-11-02 北京滴普科技有限公司 一种支撑多数据源安全融合的安全沙箱系统
CN113495797A (zh) * 2021-06-22 2021-10-12 上海百秋电子商务有限公司 一种消息队列及消费者动态创建方法及系统
CN113781159A (zh) * 2021-08-23 2021-12-10 河南宇章信息技术有限公司 一种基于多租户SaaS技术的智能财税一体化服务平台
CN114546563A (zh) * 2022-02-23 2022-05-27 北京京航计算通讯研究所 一种多租户页面访问控制方法和系统
CN114546563B (zh) * 2022-02-23 2023-04-28 北京京航计算通讯研究所 一种多租户页面访问控制方法和系统
WO2023231681A1 (zh) * 2022-05-31 2023-12-07 京东方科技集团股份有限公司 账号创建方法、物联网多租户系统、设备、程序和介质
CN115099731A (zh) * 2022-08-29 2022-09-23 江苏小旗欧飞科技有限公司 基于SaaS模式下的数字生活管理系统及方法
CN115099731B (zh) * 2022-08-29 2022-11-01 江苏小旗欧飞科技有限公司 基于SaaS模式下的数字生活管理系统及方法
CN116760705A (zh) * 2023-08-18 2023-09-15 苏州思萃工业互联网技术研究所有限公司 基于综合能源管理系统的多租户平台隔离管理系统及方法
CN116760705B (zh) * 2023-08-18 2023-10-31 苏州思萃工业互联网技术研究所有限公司 基于综合能源管理系统的多租户平台隔离管理系统及方法
CN117389684A (zh) * 2023-10-13 2024-01-12 河北云在信息技术服务有限公司 一种SaaS多租户数据隔离方法和系统

Similar Documents

Publication Publication Date Title
CN112100262A (zh) 多租户SaaS平台快速搭建及动态扩容的方法及系统
CN107181808B (zh) 一种私有云系统及运行方法
CN107343034A (zh) 基于QConf的Redis高可用系统及方法
CN109344603B (zh) 一种统一登录系统
CN105512266A (zh) 一种实现分布式数据库操作一致性的方法及装置
CN106650427B (zh) 沙箱运行环境的检测方法及检测装置
CN109787976B (zh) 信息更新方法、装置、计算机设备及存储介质
CN103038788A (zh) 提供多个网络资源
CN110661662B (zh) 一种轻量级的微服务配置方法
CN111898149B (zh) 一种多组织机构的用户管理系统和方法
US11228486B2 (en) Methods for managing storage virtual machine configuration changes in a distributed storage system and devices thereof
CN112910904B (zh) 多业务系统的登录方法及装置
CN110673933A (zh) 基于ZooKeeper的分布式异步队列实现方法、装置、设备及介质
CN114281253B (zh) 存储卷的管理方法
WO2023093039A1 (zh) 一种进程间通讯方法及系统
CN107547512B (zh) 一种多级云平台中的用户认证方法和装置
US10333939B2 (en) System and method for authentication
CN112035062B (zh) 云计算的本地存储的迁移方法、计算机设备及存储介质
CN111159689A (zh) 一种支持多系统统一用户管理的方法及系统
CN113112662B (zh) 一种在手机聊天软件群组里使用门禁电子钥匙和管理门禁权限的实现方法
CN116095081A (zh) 基于区块链系统的事件处理方法及装置、设备、介质
CN111783076A (zh) 权限资源构建、建权、授权、验证多场景归一化处理模型
CN114070856A (zh) 数据处理方法、装置、系统、运维审计设备和存储介质
CN106844058B (zh) 一种虚拟化资源的管理方法和装置
CN113509719B (zh) 多版本应用的计算机系统、运行方法、装置及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination