Saas 化的三种方案
saas化的主要目的是实现每个租户的数据互相隔离,使用平台就像自己独占整个平台,感知不到其他租户的存在。
技术层面的话就是数据怎么存放的问题。每个租户使用的程序是同一套,只是数据都隔离了。
一般的saas化方案有三种,根据自己的实际需求去选择哪种saas化方案。
一、表字段隔离
这是一种轻量级的租户隔离方案,数据使用表字段去隔离,比如每个字段加上tennnt_id
,增删改查的时候都带上租户id。这种租户id的设置最好在底层框架实现,比如mybatis-plus支持设置租户id。
优点
- 实现简单,开发不会有太多的工作量
- 轻量,不用多建表或库,节省物理资源
缺点
- 开发出现bug,容易导致租户数据没有隔离,每次需要全量测试
- 随着各个租户数据的增长,整体性能越来越差
二、库隔离
库隔离方案是每个租户对应一个库。
优点
- 隔离的安全性比表字段的方案要好
- 各个租户之间的影响不是很大,比如a租户的某个表的数据增加了一万条,在机器资源充足的情况下,对b租户的影响不大
缺点
- 消耗的资源会比较多一点
物理隔离
物理隔离方案是每个租户的数据库对应不同的机器。
优点
- 数据安全性最高
- 性能最好
缺点
- 消耗的资源最多
总结
- 资源消耗: 表字段隔离 < 库隔离 < 物理隔离
- 安全性: 表字段隔离 < 库隔离 < 物理隔离
- 性能: 表字段隔离 < 库隔离 < 物理隔离
10
赞
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦