配置项作用 #
discovery.zen.join_timeout 配置项用于控制节点加入集群时的超时时间。
当节点尝试加入现有集群时,如果在此时间内未收到响应或完成加入过程,则视为加入失败。
配置项属性 #
- 配置路径:
discovery.zen.join_timeout - 数据类型:
TimeValue(时间值) - 默认值:
ping_timeout × 20(默认 60 秒) - 最小值:
0ms - 是否可选: 是
- 弃用状态: ⚠️ 已弃用
配置项详解 #
工作机制 #
节点加入超时流程
新节点 ──────────────────→ 主节点
│ │
│ 发送加入请求 │
│ (设置超时 join_timeout) │
│ │
│ 等待响应... │
│ │
├──────── < join_timeout ──┤ 收到响应
│ ↓ │
│ 加入成功 ✅ │
│ │
└──────── ≥ join_timeout ──┤ 超时
↓ │
加入失败 ❌ │
↓ │
触发重试逻辑 │
动态默认值 #
// 默认值是 ping_timeout 的 20 倍
join_timeout = ping_timeout × 20
如果 ping_timeout = 3s(默认):
join_timeout = 3s × 20 = 60s
如果 ping_timeout = 5s:
join_timeout = 5s × 20 = 100s
双重使用场景 #
1. 节点发送加入请求 #
新节点 → 主节点
发送加入请求
│
↓
等待 join_timeout (60s)
│
├──── 收到确认 → 加入成功
│
└──── 超时 → 触发重试或失败
2. 主节点验证加入请求 #
新节点 → 主节点
主节点验证请求
│
↓
等待 join_timeout (60s)
│
├──── 验证完成 → 接受加入
│
└──── 超时 → 拒绝加入
配置建议 #
⚠️ 重要提示 #
此配置项已被标记为弃用,建议保持默认值或使用新的发现机制。
生产环境(默认) #
discovery.zen.join_timeout: 60s
建议: 保持默认值 60s(ping_timeout × 20)。适用于大多数生产环境。
高延迟网络 #
discovery.zen.ping_timeout: 10s
# join_timeout 会自动变为 200s
建议: 增加 ping_timeout,join_timeout 会自动调整。
快速加入要求 #
discovery.zen.join_timeout: 30s
建议: 减少到 30s-40s。当网络稳定且需要快速完成加入时使用。
代码示例 #
easysearch.yml 配置(已弃用) #
discovery:
zen:
ping_timeout: 3s
# join_timeout 会自动计算为 60s
直接配置超时 #
discovery:
zen:
join_timeout: 90s # 覆盖自动计算的值
高延迟网络配置 #
discovery:
zen:
ping_timeout: 10s # 增加 ping 超时
# join_timeout = 10s × 20 = 200s
配合重试配置 #
discovery:
zen:
join_timeout: 60s
join_retry_attempts: 3
join_retry_delay: 100ms
相关配置 #
| 配置项 | 作用 | 默认值 |
|---|---|---|
discovery.zen.join_timeout | 加入超时时间 | ping_timeout × 20 |
discovery.zen.ping_timeout | ping 超时 | 3s |
discovery.zen.join_retry_attempts | 加入重试次数 | 3 |
discovery.zen.join_retry_delay | 重试延迟 | 100ms |
配置关系 #
ping_timeout 影响 join_timeout
ping_timeout = 3s → join_timeout = 60s
ping_timeout = 5s → join_timeout = 100s
ping_timeout = 10s → join_timeout = 200s
如果显式配置 join_timeout:
使用配置的值,忽略 ping_timeout × 20 的计算
超时设置指南 #
| 网络环境 | 推荐 ping_timeout | 结果 join_timeout |
|---|---|---|
| 局域网 | 3s | 60s |
| 同城云 | 5s | 100s |
| 跨地域 | 10s | 200s |
| 高延迟 | 15s | 300s |
加入过程总时间 #
最坏情况:每次都超时
总时间 ≈ join_timeout × join_retry_attempts
默认配置:
= 60s × 3 = 180 秒 (3分钟)
高延迟配置:
= 200s × 5 = 1000 秒 (约 17 分钟)
快速加入配置:
= 30s × 2 = 60 秒 (1分钟)
使用场景 #
推荐保持默认的场景 #
- 标准数据中心: 网络稳定、延迟低
- 中型集群: 节点数量适中
- 正常负载: 主节点处理能力充足
推荐增加的场景 #
- 跨地域部署: 网络延迟高
- 大型集群: 主节点处理压力大
- 复杂网络: 网络不稳定或拥塞
推荐减少的场景 #
- 快速恢复: 需要快速完成节点加入
- 稳定环境: 网络和集群状态都很稳定
- 小型集群: 节点少、处理快
注意事项 #
已弃用: 此配置已被标记为弃用,建议关注新的发现机制。
动态计算: 默认值基于
ping_timeout动态计算。覆盖机制: 显式配置会覆盖自动计算的值。
与重试的关系: 超时后仍会根据
join_retry_attempts决定是否重试。调试日志: 启用调试日志可以看到超时事件。
动态更新: 此配置支持动态更新,无需重启节点。
双重用途: 既用于节点发送请求,也用于主节点验证请求。
设置合理值: 考虑网络延迟和集群规模,避免设置过短导致频繁超时。





