我们有一个具有两个成员和一个仲裁者的mongodb副本设置:
昨天,db2被困在一个奇怪的状态几个小时。在此期间,蒙古人不断地试图连接到小学。但是,主体没有响应,它超时了。
问题是超时需要5s,所以应用程序每10s中就有5s被该请求阻塞,因此无法完成数据库的写/读。这减缓了数据库的运行速度,使其无法工作。
我们正在使用Mongoid4,并试图确定当服务器故障时,我们可以做些什么来获得一个良好的故障转移响应。
我们的mongoid.yml是这样的:
options:
write: {w: 1}
read: :primary_preferred
pool_size: 32
pool_timeout: 5我假设它可以在不阻塞其他db值的情况下检查返回到集合的服务器。
对于这种情况发生的原因有什么想法吗?或者如何改善这种行为?
发布于 2016-06-10 20:29:13
我们找到的最佳解决方案是升级到Mongoid5。Mongoid5给出了更多的失败选项。
https://stackoverflow.com/questions/37470511
复制相似问题