我设置了两个副本集rs1(2个节点+ 1个仲裁器),rs2(2个节点+ 1个仲裁器) 和3个配置服务器和1个路由器。
在数据库上启用分片,并对分片进行分片。
实际上在分片状态上它只显示一个rs1上使用的一个块
use demo;
db.printShardingStatus()
--- Sharding Status ---
sharding version: {
"_id" : 1,
"minCompatibleVersion" : 5,
"currentVersion" : 6,
"clusterId" : ObjectId("5656c10e6e54e468ee4e07f6")
}
shards:
{ "_id" : "rs1", "host" : "rs1/192.168.99.103:27018,192.168.99.104:27018" }
{ "_id" : "rs2", "host" : "rs2/192.168.99.103:27019,192.168.99.104:27019" }
databases:
{ "_id" : "admin", "partitioned" : false, "primary" : "config" }
{ "_id" : "demo", "partitioned" : true, "primary" : "rs1" }
demo.uploads
shard key: { "missionId" : "hashed" }
chunks:
rs1 1
{ "missionId" : { "$minKey" : 1 } } -->> { "missionId" : { "$maxKey" : 1 } } on : rs1 Timestamp(1, 0)
{ "_id" : "test", "partitioned" : false, "primary" : "rs2" }
如何验证我的rs2
是否会用于uploads
集合的增长?
编辑:上传集合中只有几个虚拟文档。
问候
答案 0 :(得分:1)
由于uploads
集合在missionId
密钥上进行散列分片,因此您可以通过将一些文档抽取到uploads
集合来简单地验证rs2上的平衡。当您这样做时,选择单调递增missonId
的数字