SaaS(Software as a Service)模式让一套系统服务成千上万客户,关键在于多租户架构。选购SaaS源码时,租户隔离是首要考量。
每个租户一个数据库,隔离性最强,但成本最高。适合金融、医疗等强监管行业。
同一数据库,每个租户一个Schema(PostgreSQL)或一个数据库实例(MySQL)。平衡了隔离性与成本。
所有租户数据在同一张表,通过tenant_id字段区分。成本最低,但需在所有SQL中加入租户过滤,稍有不慎就会数据泄露。适合中小型SaaS。
域名识别:tenant1.app.com、tenant2.app.com,通过子域名区分租户。
路径识别:app.com/tenant1、app.com/tenant2。
请求头识别:HTTP Header中携带租户标识。
登录后绑定:用户登录后绑定所属租户。
不同租户可能有不同功能开关、UI主题、业务规则。配置中心(如Apollo、Nacos)支持租户级配置覆盖。