3 つのデータ センターに分散された mongo の操作
この例では、データセンター名は A、B、C です
すべてが順調に進んでいる場合、すべてのユーザー トラフィックは A に向けられます
したがって、mongo プライマリは A にあり、mongo セットアップは次のとおりです。
- A に 3 台のサーバー (優先度が高い)
- B に 1 台のサーバー (優先度が低い)
- C の 1 サーバー (優先度 0 )
問題は、2 つのシナリオが発生した場合の mongo-writes のサポートです。
- ABC 間にネットワークがない (ネットワーク トンネルがダウンしている)
- データ キャンター A が燃えています :)、データ センターが機能していないとします。この時点で、すべてのユーザー トラフィックが B に向けられており、B での予備選挙が予想されます。
シナリオ 1 は問題ではありません。データセンター ネットワーク トンネルが存在しない場合、A には依然として大部分のレプリカがあり、優先度が高いため、すべてがまだ機能しています。
シナリオ 2 は機能しません。これは、A が動作を停止した場合、(A 上の) 3 つのレプリカすべてに到達できないためです。このように、レプリカの大部分がダウンしているため、B または C で新しいプライマリが再処理されることはありません。
2 つのシナリオをサポートするようにレプリカ セットをセットアップするにはどうすればよいですか?