我有一个长期运行的Nodejs应用程序,它使用Mongoose连接到Mongodb。据我所知,默认情况下在Mongoose上打开连接池,我们在代码中只使用一个连接,然后传递给所有模型。
我感到困惑的是当我转到mongodb日志时,我看到条目给出类似下面的连接9491 - Connections Open 53,表示高连接流失。似乎有连接被关闭并重新打开,尽管任何时候的总开放连接都不超过50的范围。
我们的部署架构是针对单个实例的,但现在我们正在使用副本集,并且需要大量并发用户才能访问该应用程序。
我的问题是,如果我通过使用连接池的Mongoose连接以及我应该使用的最佳设置,为什么有这么多连接被打开和关闭。我知道connectionTimeoutMS = 30000,socketConnectionTimeoutMS = 30000是推荐的设置,但我不确定keepAlive,mongoose建议120,但默认情况下它是1,这两者都不应该导致我看到的连接流失。