原英文版地址: https://www.elastic.co/guide/en/elasticsearch/reference/7.7/modules-discovery-settings.html, 原文档版权归 www.elastic.co 所有
本地英文版地址: ../en/modules-discovery-settings.html
本地英文版地址: ../en/modules-discovery-settings.html
重要: 此版本不会发布额外的bug修复或文档更新。最新信息请参考 当前版本文档。
发现和集群形成 受以下几个设置的影响:
-
discovery.seed_hosts
-
提供集群中符合主节点条件的节点的地址列表。 也可以是包含以逗号分隔的地址的单个字符串。 单个地址的格式是
host:port
或者host
。host
可以是由 DNS 解析的主机名、IPv4 地址或 IPv6 地址。 IPv6 地址必须用中括号[]括起来。 如果一个主机名通过 DNS 解析成多个地址,Elasticsearch 会使用所有的地址。 DNS查找依赖于 JVM DNS 缓存。 如果未指定port
,则通过顺序检查以下设置来确定端口:-
transport.profiles.default.port
-
transport.port
如果两个都没有设置,则默认端口为
9300
。discovery.seed_hosts
的默认值为["127.0.0.1", "[::1]"]
。 (参考discovery.seed_hosts
)。该设置以前叫
discovery.zen.ping.unicast.hosts
。这个旧名称已被弃用,但为了保持向后兼容性,仍可以继续使用。在未来版本中将移除对旧名称的支持。 -
-
discovery.seed_providers
-
指定使用哪种类型的 种子主机提供程序(seed hosts provider) 来获取用于启动 发现(discovery) 过程的种子节点的地址。
默认情况下,由 基于设置的种子主机提供程序(settings-based seed hosts provider) 从
discovery.seed_hosts
设置中获取种子节点地址。 这个设置以前叫discovery.zen.hosts_provider
。这个旧名称已被弃用,但为了保持向后兼容性,仍可以继续使用。在未来版本中将移除对旧名称的支持。 -
discovery.type
-
指定 Elasticsearch 是否应该组建成一个多节点的集群。
默认情况下,Elasticsearch 会在组成集群时发现其他节点,并允许其他节点稍后加入集群。
如果
discovery.type
设置为single-node
,Elasticsearch 将组建一个单节点集群,并取消cluster.publish.timeout
和cluster.join.timeout
设置的超时时间。 有关何时可以使用此设置的更多信息,请参考 Single-node discovery。 -
cluster.initial_master_nodes
-
在全新的集群中设置初始的符合主节点条件的节点集。
默认情况下,该列表为空,这意味着该节点希望加入一个已经启动的集群。
参考
cluster.initial_master_nodes
。
专家级设置 (expert settings)
发现和集群的组建也受以下专家级(expert-level)设置的影响,尽管我们不建议更改这些设置的默认值。
如果你调整了这些设置,集群可能无法正确的组建,或者可能变得不稳定或不能容忍某些故障。
-
discovery.cluster_formation_warning_timeout
-
设置在记录集群未组建成功的警告之前,节点尝试组建集群的时间。
默认为
10s
。 如果在discovery.cluster_formation_warning_timeout
时间过去后仍未组建集群,则该节点将记录一条警告消息,该消息以短语master not discovered
开头,描述发现过程的当前状态。 -
discovery.find_peers_interval
-
设置节点在尝试另一轮发现前等待的时间。默认为
1s
。 -
discovery.probe.connect_timeout
-
设置尝试连接到每个地址时要等待的时间。默认为
3s
。 -
discovery.probe.handshake_timeout
-
设置尝试通过握手识别远程节点时要等待的时间。默认为
1s
。 -
discovery.request_peers_timeout
-
设置节点在再次请求其 对等(peers) 节点后等待多长时间,然后将请求视为失败。默认为
3s
。 -
discovery.seed_resolver.max_concurrent_resolvers
-
指定在解析种子节点的地址时要执行多少个并发 DNS 查找。默认为 10。
这个设置以前叫
discovery.zen.ping.unicast.concurrent_connects
。这个旧名称已被弃用,但为了保持向后兼容性,仍可以继续使用。在未来版本中将移除对旧名称的支持。 -
discovery.seed_resolver.timeout
-
指定在解析种子节点的地址时,每次 DNS 查找等待的时间。默认为
5s
。 这个设置以前叫discovery.zen.ping.unicast.hosts.resolve_timeout
。这个旧名称已被弃用,但为了保持向后兼容性,仍可以继续使用。在未来版本中将移除对旧名称的支持。 -
cluster.auto_shrink_voting_configuration
-
控制 选举设置 是否自动删除离开的节点,只要它仍然包含至少 3 个节点。默认为
true
。 如果设置为false,选举设置永远不会自动收缩,你必须使用 选举设置排除 API 手动删除脱离的节点。 -
cluster.election.back_off_time
-
设置每次选举失败时选举前等待时间上限的增量。请注意,这是线性(linear) 回退(backoff)。默认为
100ms
。更改默认设置可能会导致集群无法选举主节点。 -
cluster.election.duration
-
设置在节点认为选举失败并安排重试之前,允许每次选举持续的时间。默认为
500ms
。更改默认设置可能会导致集群无法选举主节点。 -
cluster.election.initial_timeout
-
设置节点最初等待时间的上限,或者在选举的主节点失效后,在尝试第一次选举之前等待时间的上限。默认为
100ms
。更改默认设置可能会导致集群无法选举主节点。 -
cluster.election.max_timeout
-
设置节点在尝试第一次选举之前等待时间的最大上限,以便持续很长时间的网络分区不会导致过度稀疏的选举。默认为
10s
。更改默认设置可能会导致集群无法选举主节点。 -
cluster.fault_detection.follower_check.interval
-
设置选举出的主节点在从节点对集群中其他节点检查过程中等待的时间。默认为
1s
。更改默认设置可能会导致集群无法选举主节点。 -
cluster.fault_detection.follower_check.timeout
-
设置选举出的主节点在认为从节点检查失败之前等待响应的时间。默认为
10s
。更改默认设置可能会导致集群无法选举主节点。 -
cluster.fault_detection.follower_check.retry_count
-
设置每个节点必须连续发生多少次从节点检查失败,然后选举出的主节点才会认为该节点出现故障并将其从集群中删除。默认为
3
。更改默认设置可能会导致集群无法选举主节点。 -
cluster.fault_detection.leader_check.interval
-
设置每个节点在选举出的主节点检查之间等待的时间。默认为
1s
。更改默认设置可能会导致集群无法选举主节点。 -
cluster.fault_detection.leader_check.timeout
-
设置每个节点在被视为失效之前等待来自选举出的主节点的 leader 检查响应的时间。默认为
10s
。更改默认设置可能会导致集群无法选举主节点。 -
cluster.fault_detection.leader_check.retry_count
-
设置在节点认为选举出的主节点有故障并尝试查找或选择新的主节点之前,必须发生多少次连续的 leader 检查 失败。默认为
3
。更改默认设置可能会导致集群无法选举主节点。 -
cluster.follower_lag.timeout
-
设置主节点等待从滞后节点接收集群状态更新确认的时间。默认为
90s
。如果一个节点在这段时间内没有成功更新集群状态,则该节点被认为已经失效并从集群中删除。参考 发布集群状态。 -
cluster.join.timeout
-
设置节点在发送加入集群的请求后,在认为请求失败并重试之前等待的时间,除非
discovery.type
被设置为single-node
。默认为60s
。 -
cluster.max_voting_config_exclusions
-
设置无论在任何时候的投票配置排除的数量限制。(原文: Sets a limit on the number of voting configuration exclusions at any one time.) 默认为
10
。参考 添加和移除节点。 -
cluster.publish.info_timeout
-
设置主节点等待 每个集群状态更新 完全发布到所有节点的时间,然后记录一条消息,指示某些节点响应缓慢。默认为
10s
。 -
cluster.publish.timeout
-
设置主节点等待 每个集群状态更新 完全发布到所有节点的时间,除非
discovery.type
被设置为single-node
。默认为30s
。参考 发布集群状态。 -
cluster.no_master_block
-
指定当集群中没有活动的主节点时拒绝哪些操作。该设置有两个有效值:
-
all
- 拒绝集群上的所有操作(读和写操作)。这也适用于 集群状态读取或写入操作的 API ,如获取索引设置、设置映射(mapping) 和 集群状态 API。
-
write
- (默认) 拒绝写操作。根据最后一次已知的集群配置,读取操作是成功的。这种情况可能会导致对陈旧数据的部分读取,因为该节点可能与集群的其余部分隔离。
-
cluster.no_master_block
设置不适用于 基于节点的 API(比如 集群统计,节点信息,以及节点统计 API)。 对这些 API 的请求不会被阻止,可以在任何可用的节点上运行。 - 要使集群完全运行,它必须有一个活动的主节点。
这个设置取代了之前版本中的
discovery.zen.no_master_block
设置。且discovery.zen.no_master_block
已被忽略。 -