SaaS(Soft as a Service)软件即服务,是一种软件架构技术。在同一个服务器下运行单个应用实例,为多个租户提供服务,并实现租户间的数据隔离。
SaaS多租户实现的三种方案
-
独立数据库:一个租户一个数据库。
安全性和隔离性最高,成本也最高。适用于租户少,对隔离性要求高的租户,如医院和政务
优点:1.数据完全隔离
2.满足个性化定制需求缺点: 1. 软硬件成本高,维护成本高
2. 重复的基础数据和一致性问题
3. 跨租户统计难度大
4. 升级维护复杂度高 -
共享数据库,Schema隔离(逻辑隔离)
共享一套基础设施。如mysql,同一套数据库服务器中,不同的租户即不同的database。适用于中小型SaaS平台。
优点:1. 节约服务器成本
2. 数据库易于维护缺点:1. 跨租户统计难度大
2. 高负载时,资源竞争影响其他租户性能
3. 访问时,需要自定义database路由 -
共享数据库,共享Schema
多租户数据存储在同一张表中,用租户id字段区分。适用于产品原型展示,初创型企业快速交付。
优点:1.成本低
2.方便统计缺点:1. 隔离性和安全性差
2. 租户定制化难度大,如部分租户要加字段