1

当为节点使用本机 mongo.db 驱动程序时,我应该为每个应用程序、每个页面“服务”打开 1 个连接,还是在需要时打开和关闭它?

我看过一些较旧的答案,但我知道该项目一直在发展,所以我想知道它今天的状态。

4

1 回答 1

2

这种情况不会改变。打开与服务器的新连接的性能将低于使用已建立的连接。

注意:这是服务器应用程序的一般情况,并不特定于 MongoDB。

典型的开销包括:

  • 将服务器名称解析为 IP
  • 建立与服务器的网络连接
  • 服务器上分配的每个连接内存

特别是对于 MongoDB:

  • 打开新连接意味着服务器上的新套接字连接和线程
  • 每个连接(从 MongoDB 2.0 开始)在服务器上分配 1Mb 的 RAM(另请参阅:检查内存使用情况
  • 打开文件/连接有每个进程的限制(另请参阅:打开的文件过多

对于 MongoDB Node.js 驱动程序,您可以通过在构造函数中设置poolSize来利用连接池。一篇博客文章,其中包含使用此示例的示例:Node.js:连接池和 MongoDB

于 2012-07-27T00:54:03.580 回答