【问题标题】:Why does Mongo open at least 5 connections? [duplicate]为什么 Mongo 至少打开 5 个连接? [复制]
【发布时间】:2015-11-12 15:12:21
【问题描述】:

在 node.js-app 中使用 mongoose-Plugin 将打开不止一个连接,即使我只调用一次 mongoose.connect(...);。怎么可能?

这是我来自 mongod 的终端输出,证明有多个连接正在传入

NETWORK  [initandlisten] connection accepted from 127.0.0.1:51515 #1 (1 connection now open)
NETWORK  [initandlisten] connection accepted from 127.0.0.1:51516 #2 (2 connections now open)
NETWORK  [initandlisten] connection accepted from 127.0.0.1:51517 #3 (3 connections now open)
NETWORK  [initandlisten] connection accepted from 127.0.0.1:51518 #4 (4 connections now open)
NETWORK  [initandlisten] connection accepted from 127.0.0.1:51519 #5 (5 connections now open)

【问题讨论】:

  • 不是重复的,而是一个非常相似的问题。它还包含答案。
  • 这就是重复的意思。不必逐字逐句地回答同一个问题。只要它回答了这个问题。这就是为什么您现在应该在此处放置一个带有蓝色大按钮的大横幅,上面写着“这回答了我的问题”。
  • 好的,我明白了。所以我在自己的回答中描述了这一点。谢谢布雷克斯
  • 好吧好吧我现在明白了... ;D

标签: node.js mongodb mongoose


【解决方案1】:

正如@Blakes Seven 的评论所暗示的,以下问题是一个非常相似的问题,并且也包含对此问题的答案:

How to manage mongodb connections in a nodejs webapp

Mongoose 似乎不仅仅在单个连接上打开,因为它提供了连接工具功能(有关更多信息,请参阅其他问题)。

【讨论】:

  • 嗯,不是真的。 node.js 为每个 MongoClient 连接使用连接池。这意味着应用程序可以在这些连接之间进行负载平衡,而不是让单个线程连接等待并及时响应。事实上,接受的答案并没有多大意义。它谈到了创建者的池化(这是非常正确的),然后回答者自己谈到了一些打开和关闭连接的随机主题
  • 还需要注意的是,由于 node.js 作为守护进程运行,最外面的脚本永远不会退出,如果你把连接放在那里,连接也将在请求之间保持不变。因此,这允许整个应用程序对多个请求使用多个连接。当然,如果您阅读此内容,您可能会发现您需要更改大型应用程序的池化,而接受的答案似乎也无法从主要提交者所说的内容中理解
猜你喜欢
  • 1970-01-01
  • 2011-12-15
  • 2015-09-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-01
  • 1970-01-01
  • 2019-06-01
  • 2019-03-08
相关资源
最近更新 更多