【ElasticSearch】ElasticSearch集群扫盲

Cluster 集群

  ⼀个 Elasticsearch 集群由⼀个或多个节点(Node)组成,每个集群都有⼀个共同的集群名称作为标识。
 

Node节点

  ⼀个 Elasticsearch 实例即⼀个 Node,⼀台机器可以有多个实例,正常使⽤下每个实例应该

  会部署在不同的机器上。Elasticsearch 的配置⽂件中可以通过 node.masternode.data 来设置节点类型。

  node.master:表示节点是否具有成为主节点的资格

          true代表的是有资格竞选主节点

          false代表的是没有资格竞选主节点

  node.data:   表示节点是否存储数据

 

Node节点组合

  主节点+数据节点(master+data)
    节点即有成为主节点的资格,⼜存储数据
node.master: true
node.data: true
  数据节点(data)
    节点没有成为主节点的资格,不参与选举,只会存储数据
node.master: false
node.data: true

  客户端节点(client)

    不会成为主节点,也不会存储数据,主要是针对海量请求的时候可以进⾏负载均衡

node.master: false
node.data: false

 

分片

  每个索引有⼀个或多个分⽚,每个分⽚存储不同的数据。分⽚可分为主分⽚( primaryshard)和复制分⽚(replica shard),复制分⽚是主分⽚的拷⻉。默认每个主分⽚有⼀个复制分⽚,⼀个索引的复制分⽚的数量可以动态地调整,复制分⽚从不与它的主分⽚在同⼀个节点上(避免单点故障)。

 

1.分⽚(shard):因为ES是个分布式的搜索引擎, 所以索引通常都会分解成不同部分, ⽽这些分布在不同节点的数据就是分⽚. ES⾃动管理和组织分⽚, 并在必要的时候对分⽚数据进⾏再平衡分配, 所以⽤户基本上不⽤担⼼分⽚的处理细节。

2.副本(replica):ES默认为⼀个索引创建1个主分⽚, 并分别为其创建⼀个副本分⽚. 也就是说每个索引都由1个主分⽚成本, ⽽每个主分⽚都相应的有⼀个copy.

3.Elastic search7.x之后,如果不指定索引分⽚,默认会创建1个主分⽚和⼀个副分⽚,⽽7.x版本之前的⽐如6.x版本,默认是5个主分⽚

 

索引分⽚分配

分⽚分配到哪个节点是由ES⾃动管理的,如果某个节点挂了,那分⽚⼜会重新分配到别的节点上。在单机中,节点没有副分⽚,因为只有⼀个节点没必要⽣成副分⽚,⼀个节点挂点,副分⽚也会挂掉,完全是单故障,没有存在的意义(主分片和副分片不在一台机器上,因此单节点分配副分片无意义);

 

在集群中,同个分⽚它的主分⽚不会和它的副分⽚在同⼀个节点上,因为主分⽚和副分⽚在同个节点,节点挂了,副分⽚和主分机⼀样是挂了,不要把所有的鸡蛋都放在同个篮⼦⾥。

可以⼿动移动分⽚,⽐如把某个分⽚移动从节点1移动到节点2。创建索引时指定的主分⽚数以后是⽆法修改的,所以主分⽚数的数量要根据项⽬决定,如果真的要增加主分⽚只能重建索引了。副分⽚数以后是可以修改的。

posted @ 2021-01-23 17:54  听风是雨  阅读(150)  评论(0编辑  收藏  举报
/* 看板娘 */