配置项作用 #
discovery.zen.fd.ping_interval 配置项用于控制故障检测机制中ping 请求的发送间隔时间。
节点会按照此间隔定期向主节点或其他节点发送 ping 请求,以检测它们是否仍然存活。
配置项属性 #
- 配置路径:
discovery.zen.fd.ping_interval - 数据类型:
TimeValue(时间值) - 默认值:
1s(1秒) - 是否可选: 是
- 弃用状态: ⚠️ 已弃用
配置项详解 #
工作机制 #
故障检测流程
节点A ─────────────────────→ 节点B
│ │
│ Ping 1 ──────────────────→│
│ ←─────────────────────────┤ Pong 1
│ │
│ 等待 ping_interval (1s) │
│ │
│ Ping 2 ──────────────────→│
│ ←─────────────────────────┤ Pong 2
│ │
│ 等待 ping_interval (1s) │
│ │
↓ ↓
持续监控 持续响应
两种检测模式 #
1. 主节点故障检测(MasterFaultDetection) #
非 master 节点定期向 master 节点发送 ping:
数据节点1 ──→ Master 节点
数据节点2 ──→ Master 节点
数据节点3 ──→ Master 节点
↓
每 ping_interval (1s) 发送一次 ping
↓
检测 Master 是否存活
2. 节点故障检测(NodesFaultDetection) #
节点之间相互 ping 以检测存活状态:
节点A ←─── Ping ───→ 节点B
节点A ←─── Pong ─── 节点B
↓
每 ping_interval (1s) 交换一次
↓
检测对方是否存活
配置建议 #
⚠️ 重要提示 #
此配置项已被标记为弃用,建议保持默认值或使用新的发现机制。
生产环境(默认) #
discovery.zen.fd.ping_interval: 1s
建议: 保持默认值 1s。这是经过验证的标准配置。
高延迟网络 #
discovery.zen.fd.ping_interval: 2s
建议: 增加到 2s-3s。网络延迟高时可以减少 ping 频率。
跨地域部署 #
discovery.zen.fd.ping_interval: 3s
建议: 增加到 3s-5s。跨地域部署时网络延迟更高。
快速故障检测 #
discovery.zen.fd.ping_interval: 500ms
建议: 减少到 500ms。当需要更快检测节点故障时使用。
代码示例 #
easysearch.yml 配置(已弃用) #
discovery:
zen:
fd:
ping_interval: 1s # 默认值
完整的故障检测配置 #
discovery:
zen:
fd:
ping_interval: 1s # ping 间隔
ping_timeout: 30s # ping 超时
ping_retries: 3 # ping 重试次数
高延迟网络配置 #
discovery:
zen:
fd:
ping_interval: 2s # 增加间隔
ping_timeout: 60s # 增加超时
ping_retries: 5 # 增加重试
相关配置 #
| 配置项 | 作用 | 默认值 |
|---|---|---|
discovery.zen.fd.ping_interval | ping 发送间隔 | 1s |
discovery.zen.fd.ping_timeout | 单次 ping 超时 | 30s |
discovery.zen.fd.ping_retries | ping 重试次数 | 3 |
故障检测时间计算 #
故障检测总时间 = (ping_timeout + ping_interval) × ping_retries
默认配置:
= (30s + 1s) × 3 = 93 秒
配置 ping_interval = 2s, ping_timeout = 30s, ping_retries = 3:
= (30s + 2s) × 3 = 96 秒
配置 ping_interval = 500ms, ping_timeout = 10s, ping_retries = 3:
= (10s + 0.5s) × 3 = 31.5 秒
性能影响分析 #
| ping_interval 设置 | 优点 | 缺点 |
|---|---|---|
| 较短(500ms) | 快速发现故障 | 增加网络和CPU开销 |
| 中等(1s) | 平衡检测速度和开销 | 标准设置 |
| 较长(3-5s) | 减少网络开销 | 故障检测较慢 |
资源消耗 #
集群规模: 10 个节点
ping_interval = 1s:
每秒发送 ping 数 ≈ 10 × 9 = 90 个
ping_interval = 3s:
每秒发送 ping 数 ≈ 10 × 9 / 3 = 30 个
ping_interval 越大,网络开销越小
使用场景 #
推荐保持默认的场景 #
- 标准数据中心部署: 网络稳定、延迟低
- 中小型集群: 节点数量少于 50
- 稳定环境: 不需要极快的故障检测
推荐调整的场景 #
- 跨地域部署: 增加间隔到 3-5 秒
- 高延迟网络: 增加间隔以减少超时
- 快速故障恢复: 减少间隔以更快发现问题
注意事项 #
已弃用: 此配置已被标记为弃用,建议关注新的发现机制。
与 ping_timeout 的关系: 间隔应远小于超时时间,避免重叠。
集群规模影响: 大集群中频繁 ping 会产生较多网络流量。
调试日志: 启用调试日志可以看到 ping 的详细信息:
[master] uses ping_interval [1s], ping_timeout [30s], ping_retries [3]监控建议: 监控节点故障检测事件频率,根据实际情况调整。
动态更新: 此配置支持动态更新,无需重启节点。
与 minimum_master_nodes 配合: 确保此配置与集群规模相匹配。





