MongoDB分片集群主分片故障场景咨询:流量是否受影响
MongoDB分片集群shard-1全故障后的流量影响分析
你的集群结构如下:
- shard-1:Server 1(Primary)、Server 2(Secondary)、Server 3(Secondary)
- shard-2:Server 4(Primary)、Server 5(Secondary)、Server 6(Secondary)
- shard-3:Server 7(Primary)、Server 8(Secondary)、Server 9(Secondary)
当shard-1整个副本集完全故障时,流量会受到部分影响,无法完全正常运转,具体情况如下:
部分数据不可访问
你的集合数据块分布在三个分片上,shard-1存储了其中一部分数据。当shard-1全节点故障时,这部分数据彻底无法被读写——任何涉及这部分数据的请求都会返回错误或超时。正常数据可继续处理
访问shard-2、shard-3上数据的请求不受影响,mongos路由节点会自动跳过不可用的shard-1,将符合条件的请求路由到正常的分片上,这部分业务可以正常运转。Balancer无法自动补救
Balancer虽然正常工作,但它只能在分片节点可用的情况下迁移数据块。shard-1全故障时,Balancer无法读取shard-1上的数据块信息,也无法执行迁移操作,所以不能自动将shard-1的数据转移到其他分片来恢复访问。无自动故障转移可能
副本集的故障转移是基于集群内有可用节点的前提,当shard-1所有节点都故障时,无法选出新的Primary节点,shard-1会处于完全离线状态,无法提供服务。
总结:集群不会完全瘫痪,但涉及shard-1上数据的业务会中断,直到shard-1副本集恢复上线,或者通过手动恢复备份到其他分片的方式修复数据访问。
内容的提问来源于stack exchange,提问作者Sachin Rana
相关产品推荐
相关产品推荐

