配置项作用 #
cluster.fault_detection.follower_check.interval 配置项控制主节点向从节点发送健康检查请求的间隔时间。主节点需要定期检查所有从节点的健康状态,以确定集群成员是否仍然存活。此配置影响集群对从节点故障的响应速度。
配置项类型 #
该配置项为静态配置,需要在启动时设置,修改后需要重启节点才能生效。
默认值 #
1s
是否必需 #
可选配置项(有默认值)
取值范围 #
100ms ~ 正无穷
配置格式 #
# 默认配置
cluster.fault_detection.follower_check.interval: 1s
# 快速检测(高可用要求)
cluster.fault_detection.follower_check.interval: 500ms
# 降低网络负载
cluster.fault_detection.follower_check.interval: 3s
# 跨地域部署
cluster.fault_detection.follower_check.interval: 5s
相关配置项 #
| 配置项 | 默认值 | 说明 |
|---|---|---|
cluster.fault_detection.follower_check.interval | 1s | 检查间隔 |
cluster.fault_detection.follower_check.timeout | 10s | 检查超时时间 |
cluster.fault_detection.follower_check.retry_count | 3 | 失败重试次数 |
工作原理 #
从节点故障检测机制:
┌─────────────────────────────────────────────────────────────────┐
│ 从节点故障检测流程 │
└─────────────────────────────────────────────────────────────────┘
主节点启动
│
▼
按 interval 间隔向所有从节点发送健康检查
│
├── 等待响应(timeout 时间)
│
├── 收到响应 → 从节点正常
│ │
│ └── 继续监控
│
└── 未收到响应
│
├── 重试 retry_count 次
│
├── 仍然失败 → 判定从节点故障
│
└── 从集群中移除故障节点
│
└── 可能触发分片重分配
与 leader_check 的区别 #
| 特性 | leader_check | follower_check |
|---|---|---|
| 执行者 | 从节点 | 主节点 |
| 检查对象 | 主节点 | 从节点 |
| 检查目的 | 检测主节点故障 | 检测从节点故障 |
| 失败后操作 | 触发选举 | 从集群移除节点 |
| 默认间隔 | 1s | 1s |
使用场景 #
1. 默认配置(推荐) #
cluster.fault_detection.follower_check.interval: 1s
适用于大多数集群配置。
2. 高可用要求 #
cluster.fault_detection.follower_check.interval: 300ms
cluster.fault_detection.follower_check.retry_count: 3
适用场景:
- 需要快速发现从节点故障
- 自动化运维要求高
- 节点数量少
3. 大规模集群 #
cluster.fault_detection.follower_check.interval: 3s
cluster.fault_detection.follower_check.retry_count: 3
适用场景:
- 节点数量多(> 50 个)
- 减少网络负载
- 降低主节点压力
4. 跨地域部署 #
cluster.fault_detection.follower_check.interval: 5s
cluster.fault_detection.follower_check.timeout: 30s
适用场景:
- 跨地域集群
- 高延迟网络
- 避免误判
推荐设置建议 #
| 集群规模 | 推荐间隔 | retry_count | 说明 |
|---|---|---|---|
| 小型 (< 10 节点) | 500ms-1s | 3 | 快速检测 |
| 中型 (10-50 节点) | 1s | 3 | 默认配置 |
| 大型 (> 50 节点) | 2-3s | 3 | 减少负载 |
| 跨地域 | 3-5s | 3-5 | 考虑延迟 |
故障检测时间计算 #
总故障检测时间 ≈ interval × retry_count
示例 1: 使用默认值
interval = 1s, retry_count = 3
检测时间 = 1s × 3 = 3秒
示例 2: 快速检测
interval = 300ms, retry_count = 3
检测时间 = 300ms × 3 = 900ms
示例 3: 大规模集群
interval = 3s, retry_count = 3
检测时间 = 3s × 3 = 9秒
网络负载分析 #
假设集群有 30 个从节点:
interval = 1s:
每秒检查数 = 30 个检查/秒
每分钟检查数 = 1800 个检查/分钟
interval = 3s:
每秒检查数 = 10 个检查/秒
每分钟检查数 = 600 个检查/分钟
网络负载降低: 66%
监控建议 #
# 查看当前配置
GET /_cluster/settings?filter_path=*.cluster.fault_detection.follower_check.*
# 查看集群节点状态
GET /_cat/nodes?v
# 查看离开集群的节点
GET /_cat/nodes?v&h=name,ip
# 查看集群健康状态
GET /_cluster/health
注意事项 #
- 静态配置:修改需要重启节点
- 主节点负载:检查会增加主节点 CPU 和网络负载
- 大规模集群:节点多时建议增加间隔
- 与 timeout 配合:应确保 interval < timeout
- 误判风险:频繁检查可能误判暂时性网络问题
- 重分配影响:从节点故障会触发分片重分配





