プライマリがデータセンターD1にあり、セカンダリノードがデータセンターD2にある3つのインスタンスでmongodbレプリカを設定しました。私たちのセットアップではフェールオーバーオプションは必要ありません。https://docs.mongodb.com/manual/tutorial/configure-secondary-only-replica-set-member/で説明されているように設定します。プライマリとの接続がないときにmongodbセカンダリノードから読み取り
同じデータセンターD2内のセカンダリノードの上に実行されているアプリケーション "A"はmongooseを使用しており、セカンダリノードからデータを読み取るように指定しました( "nearest"または "secondary"オプション)。
1)それは、プライマリMongoDBのノードである接続構成で指定せずに、特定のセカンダリノードからの読み取りに「A」を作ることが可能です:
私たちは、これらの問題に直面していますか?
2)データセンターD1とD2の間の接続が失われた場合、 "A"アプリケーションをセカンダリノードから読み込むことができます。これでmongoDBプライマリノードはもはや到達不可能ですか?私が理解する限り、 "A"でもセカンダリから読み込むように設定されているので、実際の読み込み操作を実行する前に、mongoDBはプライマリとセカンダリの間でping/arbitrappingを実行する必要があります。
3)mongodbレプリカセットプライマリインスタンスへの書き込み操作をスタンドアロンインスタンスとして直接実行し、レプリカセットの一部としてではなく、データセンターD2にアプリケーションを置くことは可能ですか?
バージョン: MongoDBの3.2.9、D1とD2とのネットワークパーティションにマングース4.5.9