sql >> データベース >  >> NoSQL >> MongoDB

これは、シャーディング/スケーリングを可能にするためのmongodbの最適な最小設定ですか?

    レプリカセット は、相互のクローンであるコンピューターのセットです。 (つまり:レプリカ )特定のセット内に、選出されたマスターがいます。デフォルトでは、読み取りと書き込みはこの選択されたマスターに送信され、レプリカは変更を「テール」して最新のコピーにします。マスターに障害が発生した場合、新しいマスターが選出され、システムはそのまま稼働し続けます。ドキュメントはこちら です。 。

    そこで、MongoDBを使用したスケーリングについて質問します。スケーリングには2つのタイプがあります:

    • スケーリングの読み取り:レプリカセットを使用します(こちら を参照してください。 )
    • 書き込みスケーリング:シャーディング を使用します

    レプリカセットの最小構成は次のとおりです。-2つの完全なレプリカ-1つのアービター(軽量プロセス、投票時に関係を解消)

    シャーディングの最小構成は-1構成サーバー-1mongod プロセス(1つのシャードのみ)-1つ以上の mongos (通常はアプリサーバー上)

    ただし、本番環境ではこのように実行したくない場合があります。単一のDBのみを実行するということは、データのソースが1つしかないことを意味し、大きなダウンタイムやデータ全体の損失につながる可能性があります。これは通常、レプリカセットを使用することで解決されます。

    さらに、構成サーバーは非常に重要です。 MongoDBは、1つまたは3つの構成サーバーをサポートします。ほとんどの本番環境では3を使用します。構成サーバーとアービターは非常に軽量であり、他のボックスまたはAmazonマイクロインスタンスに配置できます。

    シャーディングを使用するほとんどの本番デプロイメントには、レプリカセットも含まれます。実際、それらは通常、レプリカセットとして開始されます。

    シャーディングの観点からは、すべき 次のように簡単に:-新しいシャードサーバーを起動します- addshard mongosからのコマンド

    シャードを追加するときは、データがシャード間を移動し、すべてのバランスが再調整されるため、時間とリソースを考慮する必要があることに注意してください。




    1. mongodbコンソールで{および}文字を使用できません

    2. mongodbで$regexを使用する方法は?

    3. Hadoopの制限、Hadoopの欠点を解決する方法

    4. rmongodbを使用して大規模な結果セットの処理を高速化