--- title: "从节点故障检测间隔配置" date: 2026-03-11 lastmod: 2026-03-11 description: "控制从节点故障检测间隔时间的配置项说明" tags: ["集群配置", "故障检测", "高可用"] summary: "配置项作用 # 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 失败重试次数 工作原理 # 从节点故障检测机制:" --- ## 配置项作用 `cluster.fault_detection.follower_check.interval` 配置项控制主节点向从节点发送健康检查请求的间隔时间。主节点需要定期检查所有从节点的健康状态,以确定集群成员是否仍然存活。此配置影响集群对从节点故障的响应速度。 ## 配置项类型 该配置项为**静态配置**,需要在启动时设置,修改后需要重启节点才能生效。 ## 默认值 ``` 1s ``` ## 是否必需 **可选配置项**(有默认值) ## 取值范围 ``` 100ms ~ 正无穷 ``` ## 配置格式 ```yaml # 默认配置 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. 默认配置(推荐) ```yaml cluster.fault_detection.follower_check.interval: 1s ``` 适用于大多数集群配置。 ### 2. 高可用要求 ```yaml cluster.fault_detection.follower_check.interval: 300ms cluster.fault_detection.follower_check.retry_count: 3 ``` **适用场景:** - 需要快速发现从节点故障 - 自动化运维要求高 - 节点数量少 ### 3. 大规模集群 ```yaml cluster.fault_detection.follower_check.interval: 3s cluster.fault_detection.follower_check.retry_count: 3 ``` **适用场景:** - 节点数量多(> 50 个) - 减少网络负载 - 降低主节点压力 ### 4. 跨地域部署 ```yaml 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% ``` ## 监控建议 ```bash # 查看当前配置 GET /_cluster/settings?filter_path=*.cluster.fault_detection.follower_check.* # 查看集群节点状态 GET /_cat/nodes?v # 查看离开集群的节点 GET /_cat/nodes?v&h=name,ip # 查看集群健康状态 GET /_cluster/health ``` ## 注意事项 1. **静态配置**:修改需要重启节点 2. **主节点负载**:检查会增加主节点 CPU 和网络负载 3. **大规模集群**:节点多时建议增加间隔 4. **与 timeout 配合**:应确保 interval < timeout 5. **误判风险**:频繁检查可能误判暂时性网络问题 6. **重分配影响**:从节点故障会触发分片重分配