2016-07-15 70 views
1

如果流星的MongoDB没有在x秒内给出响应,Meteor是否有超时设置和重试?想知道是否有人试过这个。流星的远程数据库连接超时并重新连接

我有兴趣在远离Meteor生产应用程序的位置运行MongoDB数据库。 Meteor-to-Mongo连接速度很快,仅需3-9毫秒,但我也想了解Meteor(和NodeJS)如何应对短暂的网络中断。应用会在等待很长时间的情况下挂起吗?我如何强制1秒超时/重试以避免挂起?

回答

1

您可以在蒙戈URL指定超时:

MONGO_URL=mongodb://host:port/db?connectTimeoutMS=60000&socketTimeoutMS=60000 

但是让我们假设你有一个网络中断,什么是一个短暂的停顿给你? 你的应用程序将挂起反正...

要获得高可用性,请查看副本集。

https://docs.mongodb.com/manual/tutorial/deploy-replica-set/

+0

好点。我会研究副本集...假设我可以指定不同的读取和写入mongo服务器?我相信mongo只允许在副本集中的单个主mongo实例上写入。 –

+1

mongodb:// host1,host2,host3:27017/dev?replicaSet = rs0&readPreference = primaryPreferred&w = majority&connectTimeoutMS = 60000&socketTimeoutMS = 60000 – MrE

+0

ps:如果流星一开始没有找到主控,进程管理器将重新启动并最终连接。 – MrE