当一个节点关闭时,使用mongoid在副本集上响应缓慢

时间:2015-01-28 07:39:51

标签: ruby-on-rails ruby mongodb mongoid replicaset

我有一个包含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秒,所以我相信可能会出现令人讨厌的问题。

有什么想法吗?

软件:

  • ruby​​(2.1.5p273)
  • rails(4.1.6)
  • mongoid(4.0.0)
  • 轻便摩托车(2.0.0)

0 个答案:

没有答案