应对故障
关闭第一个节点,这时集群的状态为:关闭了一个节点后的集群
示例关闭的节点是一个主节点,而集群必须拥有一个主节点来保证正常工作,所以发生的第一件事情就是选举一个新的主节点: Node 2 。在关闭 Node 1 的同时也失去了主分片 1 和 2 ,并且在缺失主分片的时候索引也不能正常工作。 如果此时来检查集群的状况,们看到的状态将会为 red :不是所有主分片都在正常工作
幸运的是,在其它节点上存在着这两个主分片的完整副本, 所以新的主节点立即将这些分片在 Node 2 和 Node 3 上对应的副本分片提升为主分片, 此时集群的状态将会为yellow,提升主分片的过程是瞬间发生的
# 分析
为什么集群状态是 yellow 而不是 green 呢
虽然拥有所有的三个主分片,但是同时设置了每个主分片需要对应 2 份副本分片,而此时只存在一份副本分片。 所以集群不能为 green 的状态;如果同样关闭了 Node 2 ,依然可以保持在不丢任何数据的情况下运行,因为Node 3 为每一个分片都保留着一份副本
如果要恢复原来的样子,要确保Node-1的配置文件有如下配置
discovery.seed_hosts: ["localhost:9302", "localhost:9303"]
1
集群可以将缺失的副本分片再次进行分配,那么集群的状态也将恢复成之前的状态。 如果 Node 1 依然拥有着之前的分片,它将尝试去重用它们,同时仅从主分片复制发生了修改的数据文件。和之前的集群相比,只是 Master 节点切换了
Last Updated: 2022/02/05, 15:58:51