当平衡器要移动数据时,数据如何从源分片移动到目标分片?这些数据是从源分片转移到monogoS然后从mongoS插入到目标分片中还是源分片和目标分片打开专用连接并在它们之间移动数据并且mongoS只是监视它?
如果是第二种情况,这是否意味着每个碎片上都运行了平衡器逻辑?
答案 0 :(得分:2)
平衡发生在mongos上。 Mongos将每15秒触发一次平衡运行。如果发现块分布不均匀,则会选择要迁移的块并启动该迁移。一旦达到那个点,mongos / balancer就完成了。从现在开始,实际的数据迁移发生在两个mongod实例/分片之间。
因此,在分片上没有运行平衡逻辑,但是一旦由平衡器启动,分片就会执行迁移。