【问题标题】:How to create nodejs different mysql connection per user如何为每个用户创建nodejs不同的mysql连接
【发布时间】:2019-06-25 10:03:37
【问题描述】:

您好,我想创建一个 SaaS(软件即服务)项目,所以在一个数据库上管理所有用户组织很荒谬所以我想为每个用户创建单独的数据库,这很容易管理。所以想用这个 api 用户访问关联数据库来创建 Node js API。 那么如何处理每个用户的 mysql 连接,如果你建议 mysql 更改用户运行时它会更改全局连接如何按照下图的要求显示我想要的

this image shows what i want

【问题讨论】:

  • 看起来很简单。创建一个对象,键是套接字(或它们的 ID),值是 MySQL 连接。到目前为止你做了什么,或者你的问题是什么?
  • 我是否同时运行所有用户连接
  • 你应该解释更多......例如......每个API用户都有它自己的API密钥(我假设他们有)......每个API用户都需要这个自己的MySQL用户吗? ..因为问题现在很广泛..
  • 示例 user1 api 是 /api/userid1/myorgnization 用户 2 /api/userid2/myorgnization 那里只能访问关联数据库

标签: mysql node.js saas


【解决方案1】:

我认为这更像是一个基础设施问题而不是 nodejs 问题。正如 Nodejs 的名字所暗示的那样,尤其是对于大型 saas 风格的应用程序,单节点应用程序是一个单线程节点,它可以是更大的节点集群的一部分。

因此基于此。我建议不要将一个节点连接到多个不同的数据库,而是为每个要连接的数据库运行一个节点应用程序实例。

有很多方法可以解决这个问题。但是,我认为最简单的方法是将您的应用程序容器化并使用环境变量来设置数据库连接。当您拥有容器时,您需要一种方法来设置变量并运行不同的容器。最后,您需要路由到正确的容器。

所以:

  1. Containerize a node application with Docker
  2. Deploy with Kubernetes
  3. Routing to correct container

使用此方法,您可以为每个客户端启动一个或多个容器,并根据容器使用的资源量扩展(如果实施正确)容器。

希望这有助于您入门。很可能需要学习很多新信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多