JVS的多租户体系统

在IT系统中,“租户”(tenant)通常用于指代一种多租户架构(multi-tenancy),它是一种软件架构模式,允许多个用户或组织共享相同的应用程序或系统实例,但彼此之间的数据和配置被隔离开来,保证每个租户的数据隐私和安全性。

在一个多租户系统中,一个实例的应用程序或服务同时为多个租户提供服务,每个租户通常被认为是相互独立的,拥有自己的用户、数据、配置和权限。租户可以是不同的组织、公司、部门或个人用户。通过采用多租户架构,企业在一个统一的系统实例中可以为多个客户提供服务,从而节省了资源成本和维护开销,同时简化了系统的部署和管理。每个租户可以根据自己的需求进行定制和配置,而不会相互干扰。

JVS的多租户架构是通过逻辑隔离的方式实现,每个租户的数据和配置在数据库或存储系统中被分开存储,并使用安全访问控制规则进行管理。

JVS多租户模式

JVS的多租户模式如下图所示,在JVS的基础框架上,构建了两类租户(主租户和子租户),主租户在平台中有且只有唯一一个,子租户可以开多个租户。租户之间的数据是隔离的,如下图所示:

​​JVS开源基础框架:通过逻辑隔离的多租户管理系统介绍​_开源

主租户可以配置的功能包括运维设置和平台管理,其中运维设置是与整个JVS基础底座相关的配置选项,配置入口如下图所示:

​​JVS开源基础框架:通过逻辑隔离的多租户管理系统介绍​_多租户_02

平台配置是本租户下的相关功能的设置,配置入口如下:

​​JVS开源基础框架:通过逻辑隔离的多租户管理系统介绍​_运维_03

子租户只有平台管理的功能。

用户与租户关系

用户与租户支持多对多的关系,一个用户可在多个租户中切换(实际上,可能存在一个用户在多个公司任职的情况)

​​JVS开源基础框架:通过逻辑隔离的多租户管理系统介绍​_开源_04

用户可以在多个租户之间做切换,如下图所示:

​​JVS开源基础框架:通过逻辑隔离的多租户管理系统介绍​_开源_05

租户的创建

用平台的管理员点击运维设置,点击菜单上的租户管理,进入租户的管理界面,如下图所示,右侧展示的已经配置的租户

​​JVS开源基础框架:通过逻辑隔离的多租户管理系统介绍​_开源_06

点击新增按钮,弹出新增租户的表单

​​JVS开源基础框架:通过逻辑隔离的多租户管理系统介绍​_开源_07

其中 ,需要配置租户的公司名称,需要填写管理员的账号,这个是租户管理员的账号,这个账号是可以进入到系统中去创建组织、角色、用户等操作,可以分配对应的管理权限等。

用户加入租户

用户加入某个租户组织有两种模式,全新用户和已经有的用户引入租户两种模式:

  • 全新用户加入组织,那么这种方式是在平台管理中,增加创建一个用户

​​JVS开源基础框架:通过逻辑隔离的多租户管理系统介绍​_数据_08

​​JVS开源基础框架:通过逻辑隔离的多租户管理系统介绍​_运维_09

  • 管理员将已经存在的用户引入租户,通过发送租户邀请码的方式加入租户

​​JVS开源基础框架:通过逻辑隔离的多租户管理系统介绍​_运维_10

这里的邀请码是有时间限制,可以配置是否需要管理员审核的控制

​​JVS开源基础框架:通过逻辑隔离的多租户管理系统介绍​_后端框架_11

用户收到邀请码后,可以在如下图所示的地方,点击加入组织

​​JVS开源基础框架:通过逻辑隔离的多租户管理系统介绍​_多租户_12

输入组织邀请码:

​​JVS开源基础框架:通过逻辑隔离的多租户管理系统介绍​_开源_13

用户审核,如果在生成邀请码时,设置了管理员审批的用户,管理员可以在用户审核处 完成已有用户进入租户的审核

​​JVS开源基础框架:通过逻辑隔离的多租户管理系统介绍​_运维_14

用户主动创建租户

用户可以创建新的租户

​​JVS开源基础框架:通过逻辑隔离的多租户管理系统介绍​_运维_15

需要填写公司名称,默认用户密码,如下图所示

​​JVS开源基础框架:通过逻辑隔离的多租户管理系统介绍​_多租户_16

用户切换租户

用户点击个人中心,可以切换租户

​​JVS开源基础框架:通过逻辑隔离的多租户管理系统介绍​_开源_17

选择不同租户选项,则进入对应的租户

​​JVS开源基础框架:通过逻辑隔离的多租户管理系统介绍​_开源_18

JVS基础框架开源地址:https://gitee.com/software-minister/jvs