比如说你有三个es节点,master data1 data2.
此时es某个索引设置成一个主分片点一个副本。假设现在其中data1挂掉了,此时的集群与还能用,原来主分片在data1副本在data2上的索引,由于data1挂掉,此时data2上的副本变成了主分片,此时数据可用。若此时往该索引中录入数据,然后重启原来挂掉的data1,那么此时data1中的副本就需要时间重新同步数据。
假如我在重新启动data1之前把data2关闭,那么此时的集群就不可用了,因为data1重新启动了,data1中的数据副本不是活跃副本,不能被选择成为主分片,主分片的数据只有拥有最新数据的副本才可以是主分区,由于在data2关掉之前录入了数据,急群中元数据有了变化,data1重启之后对不上了,所以集群此时的著那台就是red.
当然了es提供了强制将过期副本划成主分片,reroute API提供了一个命令,allocate_stale_primary,用于将一个陈旧的分片分配为主分区。这是糟糕的情况,会丢失一些数据。
十.Elasticsearch过期副本的一些理解
最新推荐文章于 2025-01-22 22:45:00 发布
