Node.js 中的多租户

2025年2月28日 | 阅读 4 分钟

在本文中,我们将讨论 Node.js 中的多租户及其优点和示例。

什么是多租户?

多租户是一种 Node.js 中的架构模式,其中单个实例服务于多个租户。每个租户都是一个用户组,他们在应用程序实例内共享通用访问权限。每个租户都有独立的数据,这意味着数据与其他租户隔离。这个概念主要由于其租户隔离、共享资源、可伸缩性、动态租户解析等优点而有用。

多租户的优点

多租户的主要优点如下:

  • 租户隔离:数据不共享。一个租户只能访问自己的数据;不能访问其他租户的数据。这可以通过在同一个数据库中使用单独的数据库、模式和其他数据分区方法来实现。
  • 这个概念可以在不降低应用程序性能的情况下管理大量租户。负载均衡和水平扩展等策略可以轻松扩展应用程序。
  • 应用程序根据租户动态识别和分离请求。
  • 在这里,数据是隔离的,但应用程序代码、服务器、存储和其他网络资源在所有租户之间共享,这极大地优化了资源使用。
  • 共享基础设施将降低托管和维护应用程序的成本。在这里,更新和备份可以单独进行,从而更轻松地管理租户。
  • 这些应用程序是可定制的,并且可以根据租户轻松更改应用程序。

在 Node.js 中实现多租户

1. 每个租户一个数据库

在这种方法中,每个租户作为一个独立的数据库运行,并且它还提供了租户之间的严格隔离。如果租户数量增加,处理该应用程序会变得复杂。

2. 每个租户一个模式

在这里,每个租户在同一个数据库中都有一个单独的模式。它平衡了隔离和资源使用。

3. 每个租户一个表

在这里,每个租户都有一个单独的表来存储同一个数据库中每个租户的信息。与每个租户一个模式的方法相比,每个租户一个表的方法更容易管理,但隔离性较差。

示例

让我们以“每个租户一个数据库”的方法来举一个简单的 Node.js 程序。

运行上述应用程序的步骤

步骤 1:首先,我们需要创建一个带有示例名称的目录,此处创建了“multitenancy”。

步骤 2:接下来,使用命令“npm init”创建一个 package.js 文件。

步骤 3:使用命令“npm install express mongoose body-parser”安装必要的包,如 express、mongoose 和 body-parser。

步骤 4:现在,创建一个名为“server.js”的文件并将上述代码粘贴进去。

步骤 5:使用命令“node server.js”运行上述应用程序。

步骤 6:之后,使用“Postman”或任何应用程序来结束 post、get、put 请求。此处使用“thunderbolt”向上述应用程序发送请求。

使用的标头是

Multi-Tenancy in Node.js

步骤 7:之后,发送 post 请求,使用 URL“https://:3000/data/”,标头为“Content-Type”: 'application/json' 和“x-tenant-id”: 'teanat1'。此处租户 ID 为“tenant1”。请求正文为 json 格式。

Multi-Tenancy in Node.js

步骤 8:使用 URL“https://:3000/data/”使用 get 请求,并在标头中使用租户“tenant1”。现在,我们将获得通过 post 请求创建的响应数据。

Multi-Tenancy in Node.js

步骤 9:使用 URL“https://:3000/data/”使用 put 请求。在 URL 中,将租户 ID 替换为实际的租户 ID。此外,为正文提供修改后的名称和描述。

Multi-Tenancy in Node.js

步骤 10:同样,我们可以通过使用上述步骤创建其他租户并发送请求;创建了另一个示例租户。

Multi-Tenancy in Node.js