一、ElasticSearch横向扩容
primary shard 和 replica自动负载均衡
1.1 假设,我们的ElasticSearch集群中存在:2个node(节点),3个primary shard(主分片) ,3个replica shard(副本分片)。 2个节点各有3个分片 ,每个主分片各有1个副本分片。如下图:
1.2 如果此时给ElasticSearch集群增加一个node(节点),ElasticSearch会自动对primary shard 和 replica shard进行负载均衡 。 如下图:
1.3 以3个primary shard(主分片) ,3个replica shard(副本分片)的规划方式为例,当前ElasticSearch扩容的极限是6台机器,此时每个分片可以占用单台服务器的所有资源,性能最优。
二、ElasticSearch容错机制
假设,我们的ElasticSearch集群中存在:3个node(节点),9个shard(3个primary shard , 6个replica shard. 也就是说,1个主分片具有2个副本分片)。如下图:
如果此时?node 0 (Master)宕机:
? 因为?node 0 (Master)宕机了,所以 primary shard 0,replica shard 1,replica shard 2,这3个shard就丢失了。?node 0 (Master)宕机的一瞬间,primary shard 0这个shard就没有了,此时集群的状态为red。
master选举,自动选举另外一个node成为新的master:
? replica容错:新master node 将丢失的primary shard的某个replica shard 提升为primary shard,此时 cluster status会变为Yellow,因为所有的primary shard都变成了active status,但是,少了一个replica shard , 所以不是所有的replica shard 都是 active 。
数据恢复:重启故障的node,新的master节点将会把缺失的副本都copy一份到重启的node上去,而且这个node会使用之前已有的shard数据,只是同步一下宕机之后发生的改变。
此时,ElasticSearch cluster的状态为green , 因为所有的primary shard 和 replica shard 都是active状态。
|