原创

Saas平台问题思考—租户系统内核设计挑战点

多租户系统是saas平台的核心,做到服务、数据、权限等维度的隔离。用户进入到商家软件,注册、登录、浏览、下单、支付等各种业务活动产生的数据都是相互隔离的。至少多租户系统的设计,需要支持在逻辑上、物理上做到隔离。而且最重要的点:业务隔离能力需要支持高扩展性。

隔离的高扩展性

saas隔离性除了支持企业层面,也要支持企业内部的部门、分公司等业务单元维度的隔离。例如保险分公司内部的数据就是需要区分开! 以及分公司下的支部机构也需要隔离!

而我们做数据隔离设计的时候,最直接的做法就是使用一个隔离字段来实现,但是如果商家需要做到更细粒度来隔离呢?再新增一个字段?那再小一层粒度呢?继续加字段?

一般大家都会用下面两种方式来做隔离,多个字段对应不同隔离维度,以及单个字段与租户表相结合的方式。

多字段隔离

限制维度层级,字段随着隔离维度数量膨胀而膨胀,隔离字段和业务的耦合度非常高,膨胀问题无法得到有效控制,但是效率高,立竿见影!适合系统前期。

单字段 + 租户表

租户表维护着隔离字段的值和租户数据的映射,每次查询都会查出租户表中的隔离字段值结果集合,隔离值集合作为查询参数查出订单数据。多字段的膨胀问题由租户表来承接。

思考:那单字段是否能实现呢(去除租户表)?

正文到此结束
本文目录