节点类型、主节点选举过程
- 节点类型(数据节点、候选节点)
- 主节点选举过程(重要!!!)
节点类型(数据节点、候选节点)
在Elasticsearch中,每个节点可以有多个角色,节点既可以是候选主节点,也可以是数据节点
节点的角色配置在配置文件/config/elasticsearch.yml
中设置即可,配置参数如下所示
在Elasticsearch中,默认都为true
数据节点 负责 数据的存储相关的操作,如对数据进行增、删、改、查和聚合等
数据节点 往往 对服务器的配置要求比较高,特别是对CPU、内存和I/O的需求很大
数据节点 梳理 通常随着 集群的扩大而弹性增加,以便保持Elasticsearch服务的高性能和高可用
候选主节点 是 被选举为主节点 的 节点
在集群中,只有候选主节点 才有 选举权和被选举权,其他节点不参与选举工作
一旦候选主节点 被选举为 主节点,则主节点 就要负责 创建索引、删除索引、追踪集群中节点的状态,以及 跟踪 哪些节点 是 群集的一部分,并决定 将哪些分片 分配给 相关的节点等
主节点选举过程(重要!!!)
配置单播模式后,集群构建及主节点选举过程如下:
节点启动后 先执行 ping命令(这里提及的ping命令不是Linux环境用的ping命令,而是Elasticsearch的一个RPC命令),如果discovery.zen.ping.unicast.hosts
有设置,则ping设置中的host;否则尝试ping localhost的几个端口
ping命令的返回结果 会包含 该节点的基本信息 及 该节点认为的主节点
在选举开始时,主节点 先从 各节点认为的master中选,选举规则比较简单,即按照ID的字典序排序,取第一个
如果各节点 都没有认为的master,则从所有节点中选择,规则同上
需要注意的是,这里有个 集群中 节点梳理 最小值限制条件,即discovery.zen.minimum_master_nodes
如果节点数达不到最小值的限制,则循环上述过程,直到节点数超过最小限制值,才可以开始选举
最后选举出一个主节点,如果只有一个本地节点,则主节点就是它自己
如果当前节点是主节点,则开始等待节点数达到minimum_master_nodes
,再提供服务
如果当前节点不是主节点,则尝试加入主节点所在集群