我们最近在Meteor / Mongo上遇到了一些奇怪的问题,这似乎与mongo实例的丢弃有关-但我认为meteor具有处理此问题的能力。
我们正在为不同的应用程序运行大约10个Meteor服务器,这些服务器都连接到同一数据库。一个副本集,其中包含3个带有数据的可见投票节点,以及一个带有单个数据的不可见表决= 0,优先级= 0的节点,我们将其用作备份。
每个服务器使用一个连接字符串,该字符串指定三个mongo节点中的每一个作为种子节点,以及一个readPreference最接近,多数为写优先级。 mongodb://user:password@mongo1,mongo2,mongo3/db?replicaSet=rs&w=majority&wtimeoutMS=10000&readPreference=nearest
我们面临着两个明显不同的问题:
今天早上,mongo1
崩溃了-它不是主要服务器-还原了该服务器后,大约90%的应用程序继续正常运行,订阅正常工作,UI加载等。但是,方法(甚至不是全部)挂起,在某些情况下,此方法是登录方法。在其他情况下,它与图像上传有关。这仅影响2/10服务器的用户(大概是最接近mongo1
的服务器)
大约2天前,我们进行了一次主要的故障转移-我们等待了2分钟,以查看服务器是否可以恢复(如果没有恢复),我们进入并手动重新启动它们。到了第8位时,最后两台服务器已经修复了自己。这大约花费了6分钟。
所以,我的问题:
在Meteor中进行一次主要故障转移需要多长时间(让我们假设主要选举在10秒之内完成),Meteor会在多长时间后再次开始完全正常工作,可以对其进行配置吗?
导致特定流星方法在特定服务器上失败的原因是,服务器相同的任何地方(错误控制台,kadira或mongo日志)都没有错误日志。