【发布时间】:2014-03-22 21:11:54
【问题描述】:
我正在使用 Node.js 和 Sails 开发一个应用程序。
我打算同时运行同一个应用程序的 20 个实例,它们都将使用本地 MongoDB 来存储模型数据。
我的问题是这样开始的:只有前 7 或 8 个启动的应用程序正在启动,其他应用程序因无法连接到数据库而失败。
好的,我进行了一些搜索,发现我必须增加连接数,但让我觉得有些不对劲的是:每个应用程序启动时,都会创建大约 35 个连接!
因此,当启动 6 或 8 个应用程序时,它们占用了大约 250 个连接!!!
这似乎很多,因为每个应用程序只有一个连接就足够了(我认为)。这是“正常”,还是 Sails Waterline 核心有问题?
【问题讨论】:
-
每个应用程序只能打开一个从 Node.js 到 MongoDB 的连接。 stackoverflow.com/a/15688610/446681
-
@HectorCorrea 这不是我现在的问题...我可以同时运行 6 或 7 个应用程序没有问题,但由于每个应用程序创建大约 35 个连接,我无法设法将更多应用程序放在同一台机器上。这里的问题是,为什么 Waterline Sails-mongo 只为一个适配器创建 35 个连接...
-
另外,这 20 个实例将在一个单独的线程中运行……这是并行任务,而不是一个具有多个连接的应用程序。 @HectorCorrea
-
不确定这个参考有多有用,但查看code 我发现
default池大小应该为 1。但是在只定义一个模型的干净启动中,我看到 5 个连接已创建。 -
@NeilLunn 没错。我有 6 个模型,因此,每个模型都创建 5 个连接,每个应用程序总共提供 30 个连接。我将拥有 23 个应用程序,总共有 690 个连接,而它可能只有 23 个......我是否有正确的想法?
标签: node.js mongodb sails.js connection waterline