Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 处理MongoDB断开/重新连接Node大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_616_1@ @H_874_2@
当我的MongoDB连接空闲几分钟时,下一个请求以错误结束.从mongo命令行客户端,它看起来像这样

> db.users.find()
Sat Jan 12 23:42:35 Socket recv() errno:54 Connection reset by peer 107.22.25.25:47207
Sat Jan 12 23:42:35 SocketException: remote: 107.22.25.25:47207 error: 9001 socket exception [1] server [107.22.25.25:47207] 
Sat Jan 12 23:42:35 DBClientcursor::init call() Failed
Sat Jan 12 23:42:35 query Failed : chowology.users {} to: ds047207.mongolab.com:47207
Error: error doing query: Failed
Sat Jan 12 23:42:35 trying reconnect to ds047207.mongolab.com:47207
Sat Jan 12 23:42:35 reconnect ds047207.mongolab.com:47207 ok

我看到针对MongoHQ和MongoLab的沙盒实例的问题.

由于重新连接,下一个请求会很好.这是我的网络应用程序中的一个问题,因为在几分钟不活动后,在Web请求期间会出现错误.有两件事让我感到惊讶:

> MongoDB连接被定期和频繁地销毁,并且@H_404_18@>驱动程序只是引发异常,而不是在重新连接后自动重试(我使用的是使用mongoose的connect-mongo,而mongoose又使用了node-mongodb-native).

这是其他人的经历吗?怎么应该处理?如果应用程序开发人员将他们的数据库操作包装在一些重试异常处理废话中,我会感到惊讶.

@H_874_2@

解决方法

您想查看Server对象的文档

http://mongodb.github.com/node-mongodb-native/api-generated/server.html#server

特别是socketOptions,您可以在其中设置keepAlive和连接超时.认情况下,keepalive处于关闭状态,超时为0或从不表示os套接字超时有效(从os到os不等).保持活动状态会在tcp套接字连接中偶尔发送一个数据包以使其保持活动状态.有时防火墙配置不当,并且在关闭连接时不会发送结束数据包,导致连接死机并处于不明确状态,这是单声道人们正在谈论的内容(更常见的是,他们的配置非常糟糕).

@H_874_2@ @H_874_2@
@H_874_2@
@H_874_2@

大佬总结

以上是大佬教程为你收集整理的node.js – 处理MongoDB断开/重新连接Node全部内容,希望文章能够帮你解决node.js – 处理MongoDB断开/重新连接Node所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。