苦行僧DH

博客园 首页 新随笔 联系 订阅 管理

多租户平台是什么?

多租户技术(Multi-TenancyTechnology)又称多重租赁技术:是一种软件架构技术,是实现如何在多用户环境下 (此处的多用户一般是面向企业用户)共用相同的系统或程序组件,并且可确保各用户间数据的隔离性

简单讲: 在一台服务器上运行单个应用实例,它为多个租户(客户)提供服务。从定义中我们可以理解:多租户是一种架 构,目的是为了让多用户环境下使用同一套程序,且保证用户间数据隔离。那么重点就很浅显易懂了,多租户的重 点就是同一套程序下实现多用户数据的隔离

我们来分析一下传统软件行业和多租户的区别

传统行业

​ 比如我们大力公司需要一个CRM客户关系管理系统,那么我们就去找外包,外包做好后来到我们公司部署到我们公司的内网上,这种呢就是传统的软件行业。因为是将软件部署到公司内部,不同的公司需要将自己的软件都部署到公司的内部,这样对于开发方来说,维护困难,对于使用方来说,成本也变高了。

多租户

​ 比如我们现在开发了一套多租户的CRM系统,然后大力公司刚好需要一套CRM系统,那么它就可以在我们平台上租用这一套系统,然后只需要定时缴纳固定费用后,就可以直接使用该系统,而不需要去考虑维护、服务器等问题。注意:多个租户之间的数据是相互隔离不相通的

一图胜千言

数据库如何设计?

这种模式看着感觉很科学,但是你可能也会想到,这种模式的数据库设计应该是个大麻烦,对不错,这种模式的数据库确实是个大问题。

现在基于多租户的数据库设计方案通常有三种:

​ 1、独立数据库

​ 2、共享数据库,独立Schema

​ 3、共享数据库、共享表

独立数据库

这是最吊的,一个租户一个实际的数据库系统

​ 优点:对于业务方面来说更加简单,可以满足不同租户的奇葩需求,数据也很安全,与其他租户的数据隔离性很高。

​ 缺点:增加数据库成本、硬件成本、统计数据困难、扩展比较麻烦。

共享数据库、独立Schema

Schema这个比较特殊,

比如Oracle:

​ 一个数据库可以有多个用户,那么一般一个用户对应一个Schema,那么我们就可以一个租户代表一个数据库的用户,那么他们的数据也就隔离开了。

比如MySQL:

​ 可以理解为一个单独的数据库,多个租户多个数据库(一个数据库系统可以有多个数据库)。

​ 优点:数据隔离性较高。

​ 缺点:出现故障后数据恢复很困难、统计数据也很困难等。

共享数据库、共享表

也就是所有租户共享一个数据库,然后可以通过id等字段来区分不同租户的数据。

​ 优点:成本低

​ 缺点:增加业务复杂度、隔离级别低、故障后数据恢复基本gg。

三种方式的对比

来自黑马的一张图一图胜千言

posted on 2020-08-04 16:37  苦行僧DH  阅读(1728)  评论(0编辑  收藏  举报