Discovery and cluster formation
参数
常用且重要参数
discovery.seed_hosts: 集群 master eligible
节点列表
discovery.seed_providers: 指定使用哪种 seed hosts provider
。默认值是:discovery.seed_hosts
,之前版本(7.0之前)是 discovery.zen.hosts_provider
,这种方式在未来版本中会被移除
discovery.type: 指明ES是不是要组成一个多节点集群。默认是 multiple-node
, single-node
表示ES将组建一个单节点集群
cluster.initial_master_nodes: Sets the initial set of master-eligible nodes in a brand-new cluster.
Discovery
构建集群从 seed host providers
开始,在已知集群中,有 master-eligible
的节点
每个节点探测 seed addresses
,识别是否可连接;分享远程已知的 master-eligible
节点列表;继续探测,找 master
节点;如果实在找不大,就在master-eligible
中进行选举
核心参数
discovery.find_peers_interval:默认 1s
discovery.seed_hosts
seed host providers
可以配置提供,也可以在文件中提供,配置demo如下:
discovery.seed_hosts:
- 192.168.1.10:9300
- 192.168.1.11
- seeds.mydomain.com
discovery.seed_providers: unicast_hosts.txt
# unicast_hosts.txt
10.10.10.5
10.10.10.6:9305
10.10.10.5:10005
# an IPv6 address
[2001:0db8:85a3:0000:0000:8a2e:0370:7334]:9301
Quorum-based decision making
Quorum 需要仔细考虑,以防集群出现脑裂问题
集群可以 增加、删除 master eligible
节点
voting configuration
是 master eligible
节点 的集合,负责选举 master 或者 提交更新集群状态。一个决策当由一半以上 voting configuration
节点反馈才会生效。
任何 master eligible
都可以发起选举(选举自己为 master
),第一发起者会成为 master
,当两个同时发生时,重新选举。为了减少同时发起选举的概率,任何节点发起选举的时间都是随机的。
voting configuration
set of master eligible
,大部分情况,就是所有master eligible
。voting configuration
的决定需要耗费比较长时间,如果集群中有些不稳定、或者测试节点,是不应该进入 voting configuration
的,这是为什么它是 a set of master eligible
选举 master、提交集群状态信息 需要半数以上的 voting configuration
回应
voting configuration
中半数以上节点可工作,集群就可以正常工作