次の設定を検討してください。
通常のmongodbレプリケーションセットとしてセットアップされた2つの物理サーバーがあります(アービタープロセスを含むため、自動フェイルオーバーは正しく機能します)。
今、私が理解している限り、ほとんどの実際の作業はプライマリサーバーで実行されますが、スレーブはほとんどの場合、データセットの同期を維持するための作業を実行します。
同じ2台のサーバーに別のレプリケーションセットをセットアップする方法でこのセットアップにシャーディングを導入し、各サーバーで1つのmongodプロセスをプライマリとして実行し、1つのプロセスをセカンダリとして実行することは合理的でしょうか。
期待される結果は、両方が稼働している間、両方のサーバーが実際のクエリ/挿入のワークロードを共有することです。一方のサーバーに障害が発生した場合、もう一方のサーバーが復元されるまで、セットアップ全体がエレガントにフェイルオーバーして実行を継続する必要があります。
セットアップの全体的なオーバーヘッドとプロセスの数(mongos / configservers / artibers)を除いて、このセットアップに欠点はありますか?