Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 具有许多MondoDB数据库方法的NodeJS分片体系结构_Node.js_Mongodb_Express - Fatal编程技术网

Node.js 具有许多MondoDB数据库方法的NodeJS分片体系结构

Node.js 具有许多MondoDB数据库方法的NodeJS分片体系结构,node.js,mongodb,express,Node.js,Mongodb,Express,我们的项目有架构问题。这个项目需要切分,只要我们需要服务部分几乎无限的可伸缩性。 С目前我们使用Node.js+MongoDb(Mongoose)和MySQL(TypeORM)。数据由数据库通过简单的“DB定位器”分隔。所以节点进程需要连接到许多数据库(最多1000个) 请求示例: 来自具有店铺ID的客户端的HTTP请求 通过店铺ID获取“DB Locator”服务中的DB IP地址/凭据 使用车间数据创建与特定数据库的连接 执行数据库查询 我们试图通过两种方式实施该计划: 为每个请求创建连

我们的项目有架构问题。这个项目需要切分,只要我们需要服务部分几乎无限的可伸缩性。 С目前我们使用Node.js+MongoDb(Mongoose)和MySQL(TypeORM)。数据由数据库通过简单的“DB定位器”分隔。所以节点进程需要连接到许多数据库(最多1000个)

请求示例:

  • 来自具有店铺ID的客户端的HTTP请求
  • 通过店铺ID获取“DB Locator”服务中的DB IP地址/凭据
  • 使用车间数据创建与特定数据库的连接
  • 执行数据库查询
我们试图通过两种方式实施该计划:

  • 为每个请求创建连接,在响应时关闭连接。 问题:
    • 我们不能在响应后使用连接(这是主要问题,因为有时我们需要一些异步操作)
    • 它的工作速度较慢
  • 保持所有连接打开。 问题:
    • 达到同时连接限制或其他一些限制
    • 内存泄漏
  • 哪条路更好?如何避免描述的问题?也许有更好的解决办法? 解决方案#1在php上非常适合我们,因为它可以根据请求运行单个进程,并且很容易在进程端断开连接。正如我们所知,Express是在v8中运行的纯JS代码,不是基于进程的。
    自动关闭未使用的连接会很好,但找不到相应的选项。

    简短回答:停止将MongoDB与Mongoose一起使用