1. ホーム
  2. mongodb

[解決済み] Mongoのシャーディングとレプリケーションの違いは何ですか?

2023-05-26 15:03:30

質問

レプリケーションはシャーディングよりもずっとシンプルに思えますが、シャーディングが実際に達成しようとしていることの利点を私が見逃しているのでなければ、です。両方とも水平方向のスケーリングを提供しないのですか?

どのように解決するのですか?

一応、どこかに書いておくと...

mongoを実行する最も基本的な方法は、スタンドアロンサーバーとして実行することです。

  • 設定を書く(ファイルまたはcliのオプション)
  • を使ってサーバを起動します。 mongod

この写真では、"client"を入れていません。次のものを確認してください。

  • レプリカセットは、上記と全く同じように初期化され、異なる設定ファイルを持つサーバーのセットです。
  • それらをリンクするために、それらのうちの1つに接続し、レプリカセットモードを初期化します。
  • 互いにミラーリングします(最も一般的な構成)。この仕組みにより、データの高可用性が保証されます。

レプリカセットの初期化は赤枠の部分で表現されています。

  • シャーディングはデータを複製することではなく、データを断片化することです。
  • データの断片はそれぞれチャンクと呼ばれ、異なるシャードに行く。シャード=各レプリカセット。
  • "main"サーバー、実行中 mongos の代わりに mongod . これは、クライアントからのクエリーのためのルーターです。

明らかな : トレードオフはより複雑なアーキテクチャです。 新規性 : 設定サーバー (これもまた別の設定ファイル)。

そこには 多く しかし、言葉を除けば、絵はほとんど同じです。


mongoDBでさえ、シャーディングを行う前にケースを慎重に検討することを推奨しています。垂直スケーリング (対) は、おそらく少なくとも一度は良いアイデアです。 前に 水平スケーリング(hs)の前に、少なくとも一度は考えるべきでしょう。

vsはハードウェア(CPU、RAMなど)をアップグレードして行います。hsはより多くのコンピュータ(ただし安価なコンピュータでも可)が必要です。