2

我有一个由 3 个 MongoDB 节点(10.66.5.3、10.66.5.4、10.66.5.5)组成的集群,当所有节点都处于活动状态并且正在运行时,它都运行顺利。

现在,当我任意关闭一台机器时,在通过mongoidgem 访问副本集时,所有数据库查询都有一些高延迟(10 秒)。使用 CLImongo工具时查询运行良好。该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 秒,所以我相信可能有一个设置在做一些讨厌的事情。

有什么想法吗?

软件:

  • 红宝石 (2.1.5p273)
  • 导轨 (4.1.6)
  • mongoid (4.0.0)
  • 助力车 (2.0.0)
4

0 回答 0