代码之家  ›  专栏  ›  技术社区  ›  Praveena

MongoDB:如何解决连接超时错误?

  •  1
  • Praveena  · 技术社区  · 6 年前

    我正在使用 mongoosejs 连接到 mongodb 这是我的连接选项

    const optionsMongoose = {
      poolSize: 10, 
      bufferMaxEntries: 0,
      connectTimeoutMS: 10000, 
      socketTimeoutMS: 45000,
      family: 4 
    }; 
    
    mongoose.connect(process.env.MONGO_URI,optionsMongoose);
    

    但过了一段时间所有的请求 MongoDB 将开始超时。在我的数据库监控工具中,我可以看到当前的实时连接是10,但当前没有向服务器发出请求。我确信我在连接选项方面做了一些错误。请帮我查一下?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Akrion    6 年前

    你试过了吗 keepAlive 以及 reconnectTries ?

    mongoose.connect(myUri, {
      socketTimeoutMS: 45000,
      keepAlive: true,
      reconnectTries: 10
    });
    

    试试上面的方法,看看是否有用。我们需要知道它是关闭连接还是您的 code/find 发生了什么事。

    keepAlive :

    对于长时间运行的应用程序,通常谨慎地启用keepalive。 没有它,一段时间后,你可能会开始看到“连接” 关闭“错误似乎没有任何原因。如果是,读完后 这样,您可以决定启用keepalive: