何谓多租户模式 ?

 一、什么是多租户模式

多租户模式的定义:单个产品实例为多个用户提供服务,同时用户可按需购买使用产品资源,用户数据相互隔离。

定义里的用户即租户,租户狭义上理解就是使用系统的人。广义上来说还应该包括创建的系统、数据等一切与当前租户有关的系统资源。

 

二、举个栗子

2.1 传统模式

假设我们有一个学生管理系统,有课程查询、成绩查询两个功能,每个学生都有账号可以登陆,使用系统中的这两个功能。然后我们把这个系统卖给很多个学校去使用,这时候需要给每个学校去部署一套系统。

 

2.2 多租户模式

还是上面的系统,结合第一章节的定义,我们看多租户模式下的系统架构,这时候我们只有一个学生管理系统实例,每个学校使用的时候首先以学校为单位进行租户创建,然后可以按需购买系统功能,比如只需要成绩查询,这里的每个学校就是一个租户。

 

三、几种数据隔离模式

3.1 共享数据表,租户ID隔离

这种模式也是我们平日里系统隔离用户使用的模式,既在表中加一个用户ID字段,多租户这里就是在表中多加一个租户ID字段进行数据区分,登陆哪个租户就通过ID查询到对应租户的数据。拿成绩表的查询SQL举例就是:

1
select from t_score where tenantid = '租户的ID'

 

3.2 共享数据库,Schema隔离

该模式就是共享一个数据库实例,然后根据租户建立多个Schema,以Mysql数据库为例,就是建立多个Mysql用户,每个Mysql用户下都有完整的系统表。这里在系统开发时就需要根据租户动态进行数据源切换,获取对应租户的Schema。

 

3.3 独立数据库

该模式就是完全独立数据库实例,还以Mysql数据库为例,就是装有很多个Mysql服务,每个租户对应一个实例 ,每个实例下具有相同的Schema和表 。这里也需要在系统开发时根据租户动态进行数据源切换,获取对应租户的数据库实例。

 

四、实现多租户系统的几个关键点

将一个传统模式的系统,改成多租户架构,大的方面来说,只需要做好这两点即可实现,也是最关键的两点。

4.1 租户管理

关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信