Architecture 什么是多租户以及实现多租户的方法?

Architecture 什么是多租户以及实现多租户的方法?,architecture,cloud,multi-tenant,software-design,saas,Architecture,Cloud,Multi Tenant,Software Design,Saas,我已经读了好一阵子关于多租户的书了。下面是一些非常琐碎的陈述。我读过几十个链接和网站,但都很抽象 …其中一个软件实例在服务器上运行并服务于 多个租户 我在30000英尺以上的地方很容易理解它,但我无法理解它的实现方式 如果有人能帮助我理解单堆栈(只是技术)和示例(可能是Salesforce),我将如何实现它,我会更满意,因为我在绝望中知道它,因为几乎几天了 请不要发布维基百科或任何网站的链接。我读过其中的大部分,但亨特还在继续 我理解这是一个非常琐碎的问题,但请不要因为很少好的理由而否决投票,因

我已经读了好一阵子关于多租户的书了。下面是一些非常琐碎的陈述。我读过几十个链接和网站,但都很抽象

…其中一个软件实例在服务器上运行并服务于 多个租户

我在30000英尺以上的地方很容易理解它,但我无法理解它的实现方式

如果有人能帮助我理解单堆栈(只是技术)和示例(可能是Salesforce),我将如何实现它,我会更满意,因为我在绝望中知道它,因为几乎几天了

请不要发布维基百科或任何网站的链接。我读过其中的大部分,但亨特还在继续


我理解这是一个非常琐碎的问题,但请不要因为很少好的理由而否决投票,因为你可能会从这个问题中读到一些新的答案

这只是一个想法,即您有多个客户使用同一个应用程序。大多数网站都是多租户的。他们有多个客户使用相同的安装。这意味着您必须执行限制视图之类的操作,以便客户只能看到属于其组织的记录


它通常是通过在所有表中放入客户ID之类的内容来实现的,并确保查询始终由该客户ID过滤。

对于多租户,同一个应用程序可以为多个安装提供服务。假设您有一个用于组织客户拥有的产品库存的应用程序,并将其销售给两个不同的客户:租户1和租户2。使用多租户,您的应用程序可以在单个服务器上的某个位置运行,并且仍然可以被您的两个客户访问

目标是分离数据,以便tenant1不知道tenant2。通常,可以在数据库级别实现多租户。您有以下选项:

  • 数据存储在同一个表中,但分离发生在一个额外的列(所谓的鉴别器列)中:

  • 数据存储在同一个数据库服务器上,但模式不同。在应用程序获取结果之前,需要选择适当的架构:

    USE tenant_1;
    SELECT * FROM products;
    
  • 数据存储在不同的数据库服务器上。对于每个租户,需要保留一个连接池


  • 这听起来更像是设计的铁板一块!而且非常抽象!还有什么更精确和具体的吗?这和作为一块巨石没有任何关系。。。这是一个正交关系。你必须提供更多关于你特定问题空间的细节,我才能给你更具体的东西。
    USE tenant_1;
    SELECT * FROM products;