Elasticsearch进阶(1)es的一些分布式机制介绍

Elasticsearch的易用性之一是它隐藏了复杂的分布式处理机制,比如:

  1. 分片机制(shard)。客户端向es集群中添加一条document时,只需要进行简单的插入操作即可,不需要去关心数据怎么进行分片的,数据会加到哪个分片上去。
  2. 集群发现机制(cluster discovery)。当一个节点启动,会自动加入集群,并且分配部分数据保存到这个新的节点上。
  3. 负载均衡机制(rebalance)。假设现在有3个节点,总共有10个shard要分配到3个节点上去,es会自动进行均匀分配,以保持每个节点的均衡的读写负载请求。当节点数发生变化,shard就会进行重新分配。
  4. 副本机制(replica)。如果集群的节点大于1个并且设置了副本数大于0,es会自动为分片创建副本,异步地将分片复制指定的份数。

shard&replica知识点

  1. primary shard和replica shard,每个document肯定只存在于某一个primary shard以及其对应的replica shard中,不可能存在于多个primary shard。
  2. primary shard的数量在创建索引的时候就固定了,replica shard的数量可以随时修改
  3. primary shard的默认数量是5,replica默认是1,默认有10个shard,5个primary shard,5个replica shard
  4. primary shard不会和自己的replica shard放在同一个节点上(否则节点宕机,primary shard和副本都丢失,起不到容错的作用),但是可以和其他primary shard的replica shard放在同一个节点上。所以当es集群只有一个节点,所有的primary shard都在这个节点上,并且不会有replica shard,集群状态为yellow。

集群的扩容

------ 本文完 ------