65.9K
CodeProject 正在变化。 阅读更多。
Home

什么是多租户

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.83/5 (13投票s)

2017年2月6日

CPOL

2分钟阅读

viewsIcon

20172

多租户意味着所有客户共享相同的实例。

引言

多租户意味着所有客户共享相同的实例。 每个客户被称为一个租户。 允许对少数区域进行自定义,但不允许更改应用程序代码。 什么是共同的?

  1. 数据库
  2. 操作系统
  3. 硬件

在应用程序设计期间,已经注意到了确保信息可以被正确的拥有者访问。

数据是任何应用程序的关键因素。 SaaS(软件即服务)应用程序的概念是基于提供对数据的集中访问,以减少其开销的。

多租户数据的方法

  1. 完全隔离或单独的数据库

    应用程序代码在所有租户之间共享,但每个租户都有自己的数据集合,并且与属于其他租户的数据隔离。

    优点:

    1. 从备份中恢复数据
    2. 扩展数据模型
    3. 完全安全和私有
    4. 可伸缩性

    缺点

    1. 更高的硬件成本
    2. 维护成本
  2. 部分共享或单独的模式

    数据库对所有租户是通用的,但每个租户都有自己的模式。 所以这是数据的部分分离。

    优点:

    1. 适用于少量数据库表。
    2. 易于实现。
    3. 租户可以根据需要添加列或表。
    4. 中等程度的数据隔离。

    缺点

    1. 恢复数据很困难
    2. 数据与其他租户共存

  3. 分区(鉴别器)数据

    在这种方法中,所有租户共享公共数据库和模式(表)。 单个实例与多个租户共享,并以租户无法访问彼此信息的方式进行分区。 租户 ID 用于区分数据。 需要额外的安全措施,以便租户无法访问彼此的信息。

    真实世界的例子:

    我们有 3 个租户正在寻找我们的应用程序,因为我们使用共享数据库和模式,因此可以进行少量自定义。
    租户-1: 需要相同,除了服装颜色应该是红色的。
    租户-2: 需要相同,除了光晕应该是阴影的,并且颜色不同。
    租户-3: 确切地需要演示的内容。

    优点:

    1. 成本效益:由于资源是共享的,因此硬件成本降低。
    2. 升级已得到处理,因此无需额外努力。
    3. 备份和恢复变得容易,因为所有人都共享相同的数据库。

    缺点

    1. 由于每个人都共享相同的数据库和表,因此自定义较少。
    2. 可以在没有通知的情况下进行更改,因此无需授权。
  4. 数据分片

    分片是指“破碎对象的一部分”。 数据库分片意味着数据库的分区。 每个部分被称为分片或数据库分片。 确定实际影响性能的表,并根据该处理分区。 数据在分区时可能出现在多个分片中。

    拆分表将被分发到多个服务器,这减少了每个表的行数,从而减少了索引大小并有助于性能改进。

    优点:

    1. 易于管理
    2. 更快
    3. 成本效益

    缺点

    1. SQL 的复杂性
    2. 备份变得困难
    3. 由于单个分片故障,整个系统可能失败

参考文献

https://msdn.microsoft.com/zh-cn/library/aa479086.aspx

http://multitenancy-in-saas-paas.wikispaces.asu.edu/

© . All rights reserved.