什么是多租户






4.83/5 (13投票s)
多租户意味着所有客户共享相同的实例。
引言
多租户意味着所有客户共享相同的实例。 每个客户被称为一个租户。 允许对少数区域进行自定义,但不允许更改应用程序代码。 什么是共同的?
- 数据库
- 操作系统
- 硬件
在应用程序设计期间,已经注意到了确保信息可以被正确的拥有者访问。
数据是任何应用程序的关键因素。 SaaS(软件即服务)应用程序的概念是基于提供对数据的集中访问,以减少其开销的。
多租户数据的方法
-
完全隔离或单独的数据库
应用程序代码在所有租户之间共享,但每个租户都有自己的数据集合,并且与属于其他租户的数据隔离。
优点:
- 从备份中恢复数据
- 扩展数据模型
- 完全安全和私有
- 可伸缩性
缺点
- 更高的硬件成本
- 维护成本
-
部分共享或单独的模式
数据库对所有租户是通用的,但每个租户都有自己的模式。 所以这是数据的部分分离。
优点:
- 适用于少量数据库表。
- 易于实现。
- 租户可以根据需要添加列或表。
- 中等程度的数据隔离。
缺点
- 恢复数据很困难
- 数据与其他租户共存
-
分区(鉴别器)数据
在这种方法中,所有租户共享公共数据库和模式(表)。 单个实例与多个租户共享,并以租户无法访问彼此信息的方式进行分区。 租户 ID 用于区分数据。 需要额外的安全措施,以便租户无法访问彼此的信息。
真实世界的例子:
我们有 3 个租户正在寻找我们的应用程序,因为我们使用共享数据库和模式,因此可以进行少量自定义。
租户-1: 需要相同,除了服装颜色应该是红色的。
租户-2: 需要相同,除了光晕应该是阴影的,并且颜色不同。
租户-3: 确切地需要演示的内容。优点:
- 成本效益:由于资源是共享的,因此硬件成本降低。
- 升级已得到处理,因此无需额外努力。
- 备份和恢复变得容易,因为所有人都共享相同的数据库。
缺点
- 由于每个人都共享相同的数据库和表,因此自定义较少。
- 可以在没有通知的情况下进行更改,因此无需授权。
-
数据分片
分片是指“破碎对象的一部分”。 数据库分片意味着数据库的分区。 每个部分被称为分片或数据库分片。 确定实际影响性能的表,并根据该处理分区。 数据在分区时可能出现在多个分片中。
拆分表将被分发到多个服务器,这减少了每个表的行数,从而减少了索引大小并有助于性能改进。
优点:
- 易于管理
- 更快
- 成本效益
缺点
- SQL 的复杂性
- 备份变得困难
- 由于单个分片故障,整个系统可能失败