30

アービターなしで MongoDB レプリケーションをセットアップすると仮定します。プライマリが利用できない場合、レプリカ セットはセカンダリをプライマリとして選択します。レプリカが自動的にプライマリを選択するため、暗黙のアービターのようなものだと思います。

では、なぜ専用のアービター ノードが必要なのでしょうか? ありがとう!

4

4 に答える 4

9

これは実際には、パーティションの両側に同数のサーバーがある場合、データベースは CAP (一貫性、可用性、およびパーティション許容度) を維持できないという CAP の定理に帰着します。アービターは、一方に「不均衡」または過半数を作成するように特別に設計されているため、この場合は予備選挙を行うことができます。

どちらかのノードの数が偶数の場合、MongoDB はプライマリを選択せず​​、セットは書き込みを受け入れません。

編集

どちらかの側とは、たとえば、一方の側に 2 つ、もう一方の側に 2 つという意味です。そこでは私の英語がわかりにくかった。

だから本当に私が意味するのは両側です。

編集

ウィキペディアは、CAP を説明するための非常に良い事例を提示しています: http://en.wikipedia.org/wiki/CAP_theorem

于 2013-08-13T14:04:03.827 に答える
8

以下の理由により、レプリケーションにアービターが必要です。

  • レプリカ セットの数が奇数の場合、レプリケーションの信頼性が高くなります。偶数のレプリカ セットがある場合は、レプリケーションにアービターを追加することをお勧めします。
  • アービターはデータを保持せず、ノード障害が発生したときに選挙で投票するだけです。
  • Arbiter は、ハードウェア リソースをあまり消費しない軽量プロセスです。
  • アービターは、暗号化されたレプリカ セット間でユーザー資格情報データを交換するだけです。
  • 選挙中の投票、ハートビート、および構成データは、レプリカ セット間の通信中に暗号化されません。
  • 高可用性を維持するには、レプリカ セットのいずれかと一緒に実行するよりも、別のマシンでアービターを実行することをお勧めします。

お役に立てれば !!!

于 2018-03-13T05:19:11.500 に答える