跳至主要內容

租户模式介绍

大约 3 分钟快速了解快速了解租户模式介绍

多租户传统实现方案

《灯灯》是一个基于SpringCloud+vue3的基础开发框架,支持租户模式、非租户模式,其中租户模式有3种常见的数据存储方式:

  1. 独立数据库

    提示

    《灯灯》中将此模式称为:DATASOURCE模式数据源模式

    一个租户独享一个独立的数据库,可以是物理数据库或云数据库,隔离级别最高、最安全、同时成本也更高。

  2. 共享数据库,隔离数据架构

    4.x模式已经弃用此模式。

    提示

    《灯灯》中将此模式称为:SCHEMA模式数据库模式4.x版本已经弃用该模式

    多个租户共享一个数据库,但一个租户独立使用一个SCHEMA。

  3. 共享数据库,共享数据架构

    提示

    《灯灯》中将此模式称为:COLUMN模式列模式字段模式

    一个租户共享一个数据库、共享一个SCHEMA,通过在表中增加tenant_id字段来区分租户的数据。

《灯灯》扩展方案

本系统除了已实现上述3种模式,还额外支持2种模式

  1. 非租户模式

    提示

    《灯灯》将非租户模式称为:NONE模式非租户模式

    即没有租户的概念,跟普通的web项目一样。

  2. 大租户+小租户模式

    提示

    《灯灯》将大租户+小租户模式 称为:独立数据源+字段模式DATASOURCE_COLUMN模式大租户小门店模式

    大租户 独享一个独立的数据库(可以是物理数据库或云数据库), 小租户大租户 的数据库中通过 tenant_id 字段来隔离数据。 即大租户采用DATASOURCE模式隔离后,小租户在采用COLUMN模式隔离,大租户可以查询小租户的数据。

模式区别

租户模式描述优点缺点
NONE(非租户模式)非租户模式:没有租户简单、适合独立系统缺少租户系统的优点
COLUMN(字段模式)共享数据库,共享数据架构:租户共用一个数据库,在业务表中增加字段来区分简单、不复杂、开发无感知数据隔离性差、安全性差、数据备份和恢复困难、
DATASOURCE(独立数据源)独立数据库:每个租户独立一个 数据库(数据源),执行代码时,动态切换数据源可独立部署数据库,数据隔离性好、扩展性高、故障影响小相对复杂、开发需要注意切换数据源时的事务问题、需要较多的数据库
DATASOURCE_COLUMN(独立数据源+字段模式)先独立数据库隔离租户,在按字段隔离门店或单位等:每个租户独立一个 数据库(数据源),执行代码时,动态切换数据源,在动态拼接 子租户id 二次隔离可独立部署数据库,数据隔离性好、扩展性高、故障影响小、支持大租户小门店形式相对复杂、开发需要注意切换数据源时的事务问题、需要较多的数据库

《灯灯》实现不同租户模式的方式

  1. 通过注解 + 拦截器的方式实现租户数据的隔离
  2. 程序员sql编码完全无需拼接租户相关的sql(一套业务代码,可以通用所有模式)
  3. 通过启动配置决定启用何种模式的插件,程序就能按照何种模式来隔离数据。
👆🏻👆🏻👆🏻上面是评论区,对系统、本页文档什么疑问,可以在评论区留言。
❗️❗️❗️若评论区无法显示,请使用"手机热点"或"科学上网"。