独立租户,统一底座:基于Vue3打造的JVS开源多租户框架设计与实现

在数字化浪潮下,各个业务部门或子公司各自为政,系统林立,数据无法互通,形成了一个个"信息孤岛";每开发一个新应用,都需要从零搭建用户体系、权限管理和基础设施,耗费大量重复成本。

在gitee上有一个开源的基础框架项目,它是基于多租户架构的统一数字化底座。JVS以独特的设计理念,将平台级与租户级能力完美融合,为不同规模、不同业务场景的企业带来前所未有的数字化体验。

JVS统一数字化底座支持多租户体系,所以底座的能力划分就包含两个层级的能力:平台级与租户级,如下图所示:

租户(Tenant): 解释"租户"可以是集团下的不同子公司、不同业务部门,或是外部不同的客户企业。每个租户在平台上是一个逻辑上完全隔离的空间。(对应图中的租户A、租户B、租户M),每个租户可以构建自己的应用。

平台,指为所有租户提供共用技术能力、运营支持和基础设施的核心层。核心特征是统一性、共享性、经济性。

主租户与子租户,系统在构建的时候,会默认创建一个 主租户(系统唯一),这个主租户可以看到平台相关的管理界面,主租户的管理员可以在 平台管理中创建子租户。

租户的管理功能如下图所示,包括基本的用户管理、角色管理、登录公告管理等、租户级别的应用管理(可以设置应用的logo、应用的名称等)、租户级别的会话管理、登录日志等、环境变量等基础设置,这里的管理 是每个租户都有相关的管理功能。

平台的管理功能如下图所示,包括租户的管理、平台上的基础应用的配置、基本的系统设置等等,这里的配置 只有主租户才有 管理功能。

多租户体系解释

我们先看个例子,什么是多租户,我们以钉钉举例,想象一下,有三家公司:

  • A公司(比如一家设计公司,有50名员工)
  • B公司(比如一家贸易公司,有200名员工)
  • C公司(比如一家初创公司,只有10名员工)

他们都使用了钉钉上面的客户管理(CRM)的系统,大家都在共享使用CRM这个系统,这个系统格式有 阿里钉钉团队开发运维的,但是A 公司里边的用户组织 与B公司里边的用户组织是完全独立的。 我们常见的SaaS应用都是属于多租户体系。

用户与租户

往往在使用过程中存在一个问题:用户是否可以在不同租户中切换?同样还是上面的例子,也就是公司A 雇佣了小张,同时公司B也雇佣了小张,那么小张可以在A 和 B公司之间切换,也就是在不同的身份间进行切换

JVS租户切换

JVS中是支持多租户的 ,也是支持用户在不同租户中切换,登录系统后,点击用户头像

系统会弹出用户中心的操作界面,如下图所示,用户可以点击不同的租户进行切换,以达到切换不同的身份的目的。

在线demo:https://frame.bctools.cn/

开源框架:https://gitee.com/software-minister/jvs

相关推荐
太阳之子1 小时前
给你的 AI Agent 装一双"能上网冲浪"的眼睛
开源
星栈2 小时前
LiveView 表单真香,但 changeset 也真会坑人:实时校验、错误展示、前后端校验合一
前端·前端框架·elixir
冬奇Lab13 小时前
每日一个开源项目(第148篇):obsidian-skills - Obsidian CEO 亲写的 AI Agent 格式规范,让 Agent 不再破坏你的 Vault
人工智能·开源·资讯
程序员老赵19 小时前
Docker 部署 Redmine:老牌开源项目管理部署实测记录
docker·开源·团队管理
colir020 小时前
被粉丝夸爆的超级 ai 个人工作站,原来这么多福利
开源·agent·claude
程序员老赵21 小时前
服务器文件不想 SFTP 上传?Docker 跑个 File Browser,浏览器就能管理
服务器·docker·开源
饼干哥哥21 小时前
我把GPT-image-2生成PSD的能力打包成了Skill,免费开源
gpt·开源·ai编程
星栈1 天前
LiveView 的生命周期:mount、handle_event 和 Socket 到底怎么运转
前端·前端框架·elixir
hoLzwEge1 天前
pnpm vs npm:新一代包管理器的范式革命
前端框架·node.js