Elasticsearch-节点&集群&分片&副本概念

Dcr 1年前 ⋅ 916 阅读

Master-eligible nodes 和 Master Node

  • 每个节点启动后,默认就是一个Master eligible节点(可以设置node.master:false)
  • Master-eligible节点可以参加选主流程,成为Master节点
  • 当第一个节点启动的时候,它会将自己选举成Master节点
  • 每个节点上都保存了集群的状态,只有Master节点才能修改集群的状态信息

    集群状态(Cluster State), 维护了一个集群中必要的信息

  • 所有的节点信息
  • 所有的索引和其相关的Mapping与Setting信息
  • 分片的路由信息
  • Q:为什么不能任意节点都可以修改 A:会导致数据的不一致

Data Node 和 Coordinating Node

Data Node

可以保存数据的节点,叫做Data Node.负责保存分片数据

Coordinating Node

负责接受Client的请求,将请求分发到合适的节点,并把最终的结果汇总

每个节点默认都会起到Coordinating Node的职责

其他的节点类型

Hot & Warm Node

冷热节点-->不同硬件配置的Data Node,用来实现Hot & Warm 架构,降低集群部署的成本.

Machine Learming Node

负责跑机器学习的Job,用来做异常检测

配置节点类型

开发环境中一个节点可以承担多种角色

生产环境中,应该设置单一的角色节点(职责明确,更好的性能,不同节点配置不同硬件成本更可控)

分片(Primary Shard & Replica Shard)

主分片,用以解决数据水平扩展的问题.通过主分片,可以将数据分布到集群内的所有节点上

一个分片是一个运行的Lucene实例

主分片在索引创建时指定,后续不允许修改,除非Reindex

副本,用以解决数据高可用的问题.分片是主分片的拷贝

副本分片数,可以动态调整

增加副本数,还可以在一定程度上提高服务的可用性(读取的吞吐)

全部评论: 0

    我有话说: