0、detail
(1)Discovery模块作用:
- 集群内部发现节点
- master选举
- 失败探测
(2)Zen Discovery是Discovery默认的实现。在v7.x+ Zen Discovery被废弃。
1、network
(1) transport
- transport是集群内部节点通讯的模块。
(2) http
- http模块用于接收http客户端的请求
参数 | 含义 | 其他 |
---|---|---|
http.port | 接收请求的port | |
http.host | 接收请求的地址 |
2、module
(1) 节点发现
- 分Multicast(多播)跟Unicast(单播)两种。多播:在网络里面寻找集群加入,在低版本里面是默认的zen方式,在v2.x被废弃。单播:加入一个已经设定好的集群列表中,是es推荐的方式。建议列表里面包含了所有master eligible节点。
参数 | 含义 | 其他 |
---|---|---|
discovery.zen.ping.unicast.hosts | 单播要加入的初始节点列表 | 早期版本的参数 |
discovery.seed_hosts | 单播要加入的初始节点列表 | 在v7.x以上使用这个参数 |
(2)、master election
(2)important parameter
parameter | meaning | other |
---|---|---|
discovery.zen.minimum_master_nodes | 规定elected master需要当前集群中有最少多少个master-eligible-nodes加入自己,才能选举master;也规定了当前集群中最少需要有多少个master-eligible-nodes,否则当前master会退下,集群重新发起选举 | 配置成"(master_eligile_nodes / 2) + 1”数量,避免脑裂。在7.x的版本中被废弃。es改进了选举模块,改成es内部自己去决定哪些节点能形成quorum,也避免了因为这个参数设置不合理导致的集群危险。 |
(3)other
- 所有master-eligible都能开始一次election,但是当2个election同时启动的时候则可能会失败,需要进一步election。为了避免这种情况,在每个node上election的启动都是随机的。
(3)、other
- voting confuguration:默认等于所有master-eligible节点的集合。master的选举以及集群状态的变化需要过半的voting configuration节点反应。ES内部会自动维护这个队列的节点,保持奇数个节点,避免脑裂。
查看当前集群的voting队列。
GET _cluster/state?filter_path=metadata.cluster_coordination.last_committed_config&pretty
会得到一个机器名,查看
GET _nodes
参数 | 含义 | 其他 |
---|---|---|
cluster.initial_master_nodes | 集群初始化的时候指定使用,指定初始master-eligible节点 | 理论上配置在一台master-eligible配置一台(例如自己)就可以了。但是为了保险可以配置给三台,三台上面都按相同顺序配置了这三台为这个参数。集群起来以后这个参数就没用了。不要在master-ineligible节点上配置 |
discovery.zen.no_master_block | 控制当没有master时候什么操作会被禁止 | all:所有操作都会被reject;write:写操作会被reject(默认)。在7.x以上的版本改成"cluster.no_master_block" |
网友评论