レプリカセット は、相互のクローンであるコンピューターのセットです。 (つまり:レプリカ )特定のセット内に、選出されたマスターがいます。デフォルトでは、読み取りと書き込みはこの選択されたマスターに送信され、レプリカは変更を「テール」して最新のコピーにします。マスターに障害が発生した場合、新しいマスターが選出され、システムはそのまま稼働し続けます。ドキュメントは
そこで、MongoDBを使用したスケーリングについて質問します。スケーリングには2つのタイプがあります:
レプリカセットの最小構成は次のとおりです。-2つの完全なレプリカ-1つのアービター(軽量プロセス、投票時に関係を解消)
シャーディングの最小構成は-1構成サーバー-1mongod
プロセス(1つのシャードのみ)-1つ以上の mongos
(通常はアプリサーバー上)
ただし、本番環境ではこのように実行したくない場合があります。単一のDBのみを実行するということは、データのソースが1つしかないことを意味し、大きなダウンタイムやデータ全体の損失につながる可能性があります。これは通常、レプリカセットを使用することで解決されます。
さらに、構成サーバーは非常に重要です。 MongoDBは、1つまたは3つの構成サーバーをサポートします。ほとんどの本番環境では3を使用します。構成サーバーとアービターは非常に軽量であり、他のボックスまたはAmazonマイクロインスタンスに配置できます。
シャーディングを使用するほとんどの本番デプロイメントには、レプリカセットも含まれます。実際、それらは通常、レプリカセットとして開始されます。
シャーディングの観点からは、すべき 次のように簡単に:-新しいシャードサーバーを起動します- addshard
mongos
からのコマンド
シャードを追加するときは、データがシャード間を移動し、すべてのバランスが再調整されるため、時間とリソースを考慮する必要があることに注意してください。