12

シャーディングとレプリケーションがどのように機能するかについて混乱しています..定義によると

レプリケーション: MongoDB のレプリカ セットは、同じデータ セットを維持する mongod プロセスのグループです。

シャーディング: シャーディングは、複数のマシンにまたがってデータを保存する方法です。

私の理解によると、75 GB のデータがある場合、レプリケーション (3 台のサーバー) によって、各サーバーに 75 GB のデータが保存されます。これは、サーバー 1 に 75 GB、サーバー 2 に 75 GB、サーバー 3 に 75 GB を意味します。私が間違っている場合..シャーディングにより、サーバー1に25GBのデータ、サーバー2に25GBのデータ、サーバー3に25GBのデータとして保存されます(そうですか?)...しかし、この行に遭遇しましたチュートリアル

シャードはデータを保存します。高可用性とデータの一貫性を提供するために、本番シャード クラスターでは、各シャードはレプリカ セットです。

レプリカ セットは 75 GB ですが、シャードは 25 GB であるため、どのように同等にすることができますか? これで私を助けてください。

4

5 に答える 5

4

Saadのフォローアップの回答に答える:

また、同じサーバー上にシャードとレプリカを一緒に配置することもできますが、これは推奨される方法ではありません。各サーバーは、システム内で 1 つの役割を持つ必要があります。たとえば、シャードが 2 つあり、それを 3 回レプリケートすると、マシンは 6 台になります。

これはコストがかかりすぎるように聞こえるかもしれませんが、これはコモディティ ハードウェアであり、提供するサービスがすでに非常に優れているため、高可用性を考えて 1 台のマシンに適合しない場合、これはかなり安価であることを覚えておく必要があります。支払う価格 (専用の 1 台の大きなマシンと比較して)。

于 2013-11-03T04:52:17.567 に答える
2

私は答えとして書いていますが、実際には@Salvador Sirの答えに対する質問です。

あなたが言ったように、75 GBのデータをシャーディングする際に、サーバー1に25GBのデータ、サーバー2に25GB、サーバー3に25GBのデータとして「保存される可能性があります」。(この分散はシャーディング キーに依存します)...そして、それが失われないようにするには、シャードを複製する必要もあります。したがって、これは、すべてのサーバーにシャードが含まれていることを意味し、他のサーバーに存在する他のシャードの複製も含まれています..つまり、サーバー-1 は

1) 独自のシャード。

2) サーバー 2 に存在するシャードの複製

3) サーバー 3 に存在するシャードの複製

Server-2 と server-3 についても同様です。そうですか?..この場合、各サーバーは再び 75GB のデータを保持します。正しいか間違っていますか?

于 2013-11-01T05:21:25.630 に答える
0

3 つのシャードを作成し、データを複製したいので、上記の問題の解決策は次のとおりです。

rにはシャードとレプリカセットがあり、その場合、そのサーバーの障害はレプリカセットとシャードの損失につながります.

ただし、シャード 1 とレプリカ セット (シャード 2 とシャード 3 のレプリカ) を同じサーバーに配置することはできますが、これはお勧めできません。

于 2015-04-22T07:51:55.990 に答える