📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

配置项作用 #

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.interval1s检查间隔
cluster.fault_detection.follower_check.timeout10s检查超时时间
cluster.fault_detection.follower_check.retry_count3失败重试次数

工作原理 #

从节点故障检测机制:

┌─────────────────────────────────────────────────────────────────┐
│                    从节点故障检测流程                            │
└─────────────────────────────────────────────────────────────────┘

主节点启动
    │
    ▼
按 interval 间隔向所有从节点发送健康检查
    │
    ├── 等待响应(timeout 时间)
    │
    ├── 收到响应 → 从节点正常
    │   │
    │   └── 继续监控
    │
    └── 未收到响应
         │
         ├── 重试 retry_count 次
         │
         ├── 仍然失败 → 判定从节点故障
         │
         └── 从集群中移除故障节点
             │
             └── 可能触发分片重分配

与 leader_check 的区别 #

特性leader_checkfollower_check
执行者从节点主节点
检查对象主节点从节点
检查目的检测主节点故障检测从节点故障
失败后操作触发选举从集群移除节点
默认间隔1s1s

使用场景 #

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-1s3快速检测
中型 (10-50 节点)1s3默认配置
大型 (> 50 节点)2-3s3减少负载
跨地域3-5s3-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

注意事项 #

  1. 静态配置:修改需要重启节点
  2. 主节点负载:检查会增加主节点 CPU 和网络负载
  3. 大规模集群:节点多时建议增加间隔
  4. 与 timeout 配合:应确保 interval < timeout
  5. 误判风险:频繁检查可能误判暂时性网络问题
  6. 重分配影响:从节点故障会触发分片重分配