私はレールベースのアプリケーションでルビーを持っています。mopedをMongoの副レプリカセットのメンバから読み込みを強制する方法
別のデータセンターに置かれsecondary
delayed by x seconds
priority: 0
- :目的であるMongoのレプリカセットメンバから読み出すことです。
DETAILS
:私はmongoレプリカセットを使用する実動クラスタを実行しています。
以前は、Mopedが時には高いレイテンシ(他のデータセンターにリモートに存在する)で他のセカンダリから読み込み、セカンダリからは読み込めないことに気付きました。同じ問題を解決するために、リモートのセカンダリに遅延を追加しました。
今、私はモンゴイドを使用する新鮮な分析アプリケーションを用意しました。モンゴイドや他の宝石を使って特殊な二次から読むことができる方法はありますか? つまり、Mongoid/Moped/MongoDBの自動検出機能を無効にする方法はありますか? お勧めします
私も同様の問題に直面しました。私たちはmongoレプリカセットに生産クラスタを持っていました。同じレプリカセットにリンクされたDRクラスタもありました。 DRのメンバーの1人はメンバーが遅れていたが、他のメンバーは同期していた。本番クラスタでは、Ruby/Mongo id configを使用していました。ここでは、特にmongoid.ymlのホスト名について述べました。しかし、数日後、Mopedはmongoid.ymlで言及されていないセカンダリにクエリを送信していたことに気付きました。問題を再現するために、遅延を二次的に導入しました。 Mongoidバージョン4.x –