【发布时间】:2016-04-01 11:06:26
【问题描述】:
我有一个基于 ruby on rails 的应用程序。目标是从一个 mongo 副本集成员中读取:
secondarydelayed by x secondspriority: 0- 放置在单独的数据中心。
DETAILS:我正在运行一个使用 mongo 副本集的生产集群。
以前,有人注意到,有时 Moped 从具有高延迟的其他辅助节点(远程存在于其他数据中心)而不是从所需的辅助节点读取。为了解决同样的问题,我们在远程辅助节点上添加了延迟。
现在我有一个使用 mongoid 的全新分析应用程序。有没有一种方法可以强制使用 mongoid 或任何其他 gem 从 SPECIFIC 二级读取? 即有没有办法覆盖 Mongoid / Moped / MongoDB 中的自动发现功能? 请推荐
【问题讨论】:
-
我也遇到了类似的问题。我们在 mongo 副本集中有一个生产集群。我们还有一个连接到同一个副本集的 DR 集群。 DR 的成员之一是延迟成员,但其他成员是同步的。在生产集群中,我们使用 Ruby / Mongo id 配置。这里我们特别提到了 mongoid.yml 中的主机名。但几天后,我们注意到 Moped 正在向辅助节点发送查询,这在 mongoid.yml 中没有提到。我们引入了中学的延迟来解决这个问题。 Mongoid 版本 4.x
标签: ruby-on-rails ruby mongodb mongoid moped