多租户平台是什么?
多租户技术(Multi-TenancyTechnology)又称多重租赁技术:是一种软件架构技术,是实现如何在多用户环境下 (此处的多用户一般是面向企业用户)共用相同的系统或程序组件,并且可确保各用户间数据的隔离性
简单讲: 在一台服务器上运行单个应用实例,它为多个租户(客户)提供服务。从定义中我们可以理解:多租户是一种架 构,目的是为了让多用户环境下使用同一套程序,且保证用户间数据隔离。那么重点就很浅显易懂了,多租户的重 点就是同一套程序下实现多用户数据的隔离
我们来分析一下传统软件行业和多租户的区别
传统行业
:
比如我们大力公司需要一个CRM客户关系管理系统,那么我们就去找外包,外包做好后来到我们公司部署到我们公司的内网上,这种呢就是传统的软件行业。因为是将软件部署到公司内部,不同的公司需要将自己的软件都部署到公司的内部,这样对于开发方来说,维护困难,对于使用方来说,成本也变高了。
多租户
:
比如我们现在开发了一套多租户的CRM系统,然后大力公司刚好需要一套CRM系统,那么它就可以在我们平台上租用这一套系统,然后只需要定时缴纳固定费用后,就可以直接使用该系统,而不需要去考虑维护、服务器等问题。注意:多个租户之间的数据是相互隔离不相通的。
一图胜千言
:
数据库如何设计?
这种模式看着感觉很科学,但是你可能也会想到,这种模式的数据库设计应该是个大麻烦,对不错,这种模式的数据库确实是个大问题。
现在基于多租户的数据库设计方案通常有三种:
1、独立数据库
2、共享数据库,独立Schema
3、共享数据库、共享表
独立数据库
这是最吊的,一个租户一个实际的数据库系统
优点:对于业务方面来说更加简单,可以满足不同租户的奇葩需求,数据也很安全,与其他租户的数据隔离性很高。
缺点:增加数据库成本、硬件成本、统计数据困难、扩展比较麻烦。
共享数据库、独立Schema
Schema这个比较特殊,
比如Oracle:
一个数据库可以有多个用户,那么一般一个用户对应一个Schema,那么我们就可以一个租户代表一个数据库的用户,那么他们的数据也就隔离开了。
比如MySQL:
可以理解为一个单独的数据库,多个租户多个数据库(一个数据库系统可以有多个数据库)。
优点:数据隔离性较高。
缺点:出现故障后数据恢复很困难、统计数据也很困难等。
共享数据库、共享表
也就是所有租户共享一个数据库,然后可以通过id等字段来区分不同租户的数据。
优点:成本低
缺点:增加业务复杂度、隔离级别低、故障后数据恢复基本gg。
三种方式的对比
来自黑马的一张图一图胜千言
: