MongoDB のレプリカとディストリビューションをテストするために使用するテスト環境に 4 台のサーバーがあります。RepSetA は RepSetA1 と RepSetA2 を保持します。RepSetB は RepSetB1 と RepSetB2 を保持します。すべてのサーバーはルーターとして機能し、RepSetA1 は単一の構成サーバーとして機能します。
「プレーヤー」データ (10,000 レコード、オブジェクトは「ID」フィールドと「名前」フィールドで構成されています) があり、それをレプリカ セット間でシャード (または分散) し、同じサーバー間で複製したいと考えています。レプリカセット。単純な例: Player1-5000: RepSetA1 と RepSetA2 の両方に存在しますが、RepSetB1 と RepSetB2 には存在しません。Player5000-10000: RepSetB1 と RepSetB2 の両方に存在しますが、RepSetA1 と RepSetA2 には存在しません。
代わりに得られるのは、4 つのサーバーすべてにすべてのプレイヤーがいるということです。
シャーディング ステータスを出力すると、次のようになります。
mongos> db.printShardingStatus();
--- Sharding Status ---
sharding version: { "_id" : 1, "version" : 3 }
shards:
{ "_id" : "RepSetA", "host" : "RepSetA/MongoRepSetA1:27018,MongoRepSetA2:27018" }
{ "_id" : "RepSetB", "host" : "RepSetB/MongoRepSetB1:27018,MongoRepSetB2:27018" }
databases:
{ "_id" : "admin", "partitioned" : false, "primary" : "config" }
{ "_id" : "GamesDB", "partitioned" : true, "primary" : "RepSetA" }
GamesDB.Player chunks:
RepSetA 2
{ "_id" : { $minKey : 1 } } -->> { "_id" : 0 } on : RepSetA { "t" : 1000, "i" : 1 }
{ "_id" : 0 } -->> { "_id" : { $maxKey : 1 } } on : RepSetA { "t" : 1000, "i" : 2 }
{ "_id" : "test", "partitioned" : false, "primary" : "RepSetB" }
{ "_id" : "EOO", "partitioned" : false, "primary" : "RepSetB" }
次のコマンドを使用してシャードを構築しました。
db.adminCommand( { addShard : "RepSetA/MongoRepSetA1:27018,MongoRepSetA2:27018" } )
db.adminCommand( { addShard : "RepSetB/MongoRepSetB1:27018,MongoRepSetB2:27018" } )
db.runCommand( { enablesharding : "GamesDB" } );
db.runCommand( { shardcollection : "GamesDB.Player", key : { _id :1 } , unique : true} );
私は何を間違っていますか?