Elasticsearch节点角色类型

Elasticsearch节点角色类型

Elasticsearch 节点角色类型

在生产中,高并发的场景容易出现脑裂问题,而在Elasticsearch集群亦是如此,Elasticsearch集群中的每个节点都可以成为主节点,存储数据,提供查询服务

而这些事由两个属性参数控制的也就是 node,master 和 node.data

1:这两种组合表示这个节点有资格成为主节点,又要存储数据,如果该节点真的成为主节点的话,那么自己还要存储数据,压力是相当大的,生产不建议这样配置

node.master: true

node.data:true

2:这种组合是数据存储节点,既不参与选举,也不会成为成为主节点,因为没有成为主节点的资格,只能是数据存储节点

node.master:false

node.data:true

3:拥有参与选举主节点的资格,不会存储节点数据,该节点我们称之为 master 主节点

node.master:true

node.data: false

4:该节点为客户端节点,数据存储和主节点资格两项都没有,只能处理客户端请求,对海量的请求进行均衡

node.master:false

node.data:false

在一个生产集群中我们可以对这些节点的职责进行划分。
建议集群中设置 3 台以上的节点作为 master 节点【node.master: true node.data: false】
这些节点只负责成为主节点,维护整个集群的状态。
再根据数据量设置一批 data 节点【node.master: false node.data: true】
这些节点只负责存储数据,后期提供建立索引和查询索引的服务,这样的话如果用户请求比较频繁,这些节点的压力也会比较大
所以在集群中建议再设置一批 client 节点【node.master: false node.data: true】
这些节点只负责处理用户请求,实现请求转发,负载均衡等功能。

 

(1)cluster.name
集群名字,三台集群的集群名字都必须一致

(2)node.name
节点名字,三台 ES 节点字都必须不一样

(3)discovery.zen.minimum_master_nodes:2
表示集群最少的 master 数,如果集群的最少 master 数据少于指定的数,将无法启动,官方推荐 node master 数设置为集群数/2+1,我这里三台 ES 服务器,配置最少需要两台 master,整个集群才可正常运行,

(4)node.master 该节点是否有资格选举为 master,如果上面设了两个 mater_node 2,也就是最少两个 master 节点,则集群中必须有两台 es 服务器的配置为 node.master: true 的配置,配置了 2 个节点的话,如果主服务器宕机,整个集群会不可用,所以三台服务器,需要配置 3 个 node.masdter 为 true,这样三个 master,宕了一个主节点的话,他又会选举新的 master,还有两个节点可以用,只要配了 node master 为 true 的 ES 服务器数正在运行的数量不少于 master_node 的配置数,则整个集群继续可用,我这里则配置三台 es node.master 都为 true,也就是三个 master,master 服务器主要管理集群状态,负责元数据处理,比如索引增加删除分片分配等,数据存储和查询都不会走主节点,压力较小,jvm 内存可分配较低一点

(5)node.data
存储索引数据,三台都设为 true 即可

(6)bootstrap.memory_lock: true
锁住物理内存,不使用 swap 内存,有 swap 内存的可以开启此项

(7)discovery.zen.ping_timeout: 10s
自动发现拼其他节点超时时间

(8)discovery.zen.ping.unicast.hosts: [“172.16.8.41:9302″,”172.16.8.42:9302″,”172.16.8.43:9302”]
设置集群的初始节点列表,集群互通端口为 9302

© 版权声明

☆ END ☆
喜欢就点个赞吧
点赞0 分享
图片正在生成中,请稍后...