我有一个包含3个MongoDB节点的集群(10.66.5.3,10.66.5.4,10.66.5.5),当所有节点都处于活动状态并且正在运行时,它们都可以顺利运行。
现在,当我任意关闭一台机器时,当通过mongoid
gem访问副本集时,我在所有数据库查询上都有一些高延迟(10秒)。使用CLI mongo
工具时,查询运行正常。 rs.status()
命令会立即返回正确的信息,因此我相信它的mongoDB端配置正确。
从pry
控制台运行命令会产生相同的10秒延迟。有时在查看web api时查询会失败,但我认为只是超时查杀。
这是应用程序的mongoid.yml。
mock_production:
sessions:
default:
database: project
hosts:
- localhost:27017
options:
read: :primary
replica_set:
database: project
hosts:
- 10.66.5.3:27017
- 10.66.5.4:27017
- 10.66.5.5:27017
options:
read: :primary
write:
w: :majority
如果感觉好像代码每次检查集群的状态并且在死节点上浪费时间。我做错了什么,我错过了配置选项吗?
我尝试将refresh_interval: 10
(在一些在线资源中建议)添加到群集选项中,但它没有做任何事情。
延迟始终为10秒,所以我相信可能会出现令人讨厌的问题。
有什么想法吗?
软件: