10

MongoDB を使用した replicaSet 内の複数のマスターに関する質問があります。私は次のレイアウトを持っています:

サーバー A --> MongoDB といくつかのアプリケーションを使用

サーバー B --> MongoDB といくつかのアプリケーションを使用

MongoDB の両方のインスタンスは、同じレプリカ セット (サーバー A がプライマリ、サーバー B がセカンダリ) に編成されています。しかし今、問題があります。どちらのデータベースにも、サーバー上のアプリケーションからのデータが含まれている必要があります。

サーバー A のデータをサーバー B の MongoDB で利用できるように、2 つのマスターを使用してレプリカ セットを展開することは可能ですか? その逆も可能ですか?

事前にどうもありがとうございました

4

3 に答える 3

20

この時点で、MongoDB のレプリカ セットは 1 つのマスターしか持つことができません。(これは、レプリカ セットのプライマリと呼ばれます。) あなたのシナリオでは、多くの場合、解決策はシャード クラスターを使用することです。この例では、2 つのシャードがあります。1 つはサーバー A のデータ用、もう 1 つはサーバー B のデータ用です。両方のシャードはレプリカ セットとして実装されるため、それぞれに最低 3 つのサーバーがあります。次に、A シャードのプライマリを同じデータ センター A に配置し、B シャードのプライマリをデータ センター B に配置します。各シャードの少なくとも 1 つのレプリカ (セカンダリと呼ばれる) が他のデータ センターに配置されます。

これは、すべてのデータが各データ センターで利用可能であることを意味しますが、A シャードへの書き込みは常にデータ センター A で行われ、B シャードへの書き込みはデータ センター B で行われる必要があります (ただし、書き込みはリモートで行うこともできるため、データセンター B からシャード A に書き込むことができますが、この場合はリモート書き込みです)。

于 2014-04-10T13:18:28.380 に答える