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

配置项作用 #

indices.recovery.retry_delay_state_sync 配置项控制因集群状态同步问题导致分片恢复失败后的重试延迟时间。这些问题包括本地节点尚未在远程节点注册、远程分片尚未启动等状态同步问题。

配置项类型 #

该配置项为动态配置,可以在运行时通过集群设置 API 进行修改。

默认值 #

500ms

是否必需 #

可选配置项(有默认值)

取值范围 #

0 ~ 正无穷

配置格式 #

# 默认配置
indices.recovery.retry_delay_state_sync: 500ms

# 增加重试延迟
indices.recovery.retry_delay_state_sync: 1s

# 减少重试延迟
indices.recovery.retry_delay_state_sync: 100ms

# 快速重试
indices.recovery.retry_delay_state_sync: 50ms

相关配置项 #

配置项默认值说明
indices.recovery.retry_delay_state_sync500ms状态同步重试延迟
indices.recovery.retry_delay_network5s网络问题重试延迟
indices.recovery.max_concurrent_operations1最大并发恢复操作数

工作原理 #

状态同步重试机制:

┌─────────────────────────────────────────────────────────────────┐
│                    状态同步重试                                  │
└─────────────────────────────────────────────────────────────────┘

分片恢复请求
    │
    ▼
检查状态同步
    │
    ├── 状态已同步
    │   │
    │   └── 继续恢复操作
    │
    └── 状态未同步
         │
         ├── 本地节点未在远程注册
         ├── 远程分片未启动
         └── 集群状态未更新
              │
              ▼
         等待 retry_delay_state_sync
              │
              └── 重试恢复操作

使用场景 #

1. 默认配置(推荐) #

indices.recovery.retry_delay_state_sync: 500ms

适用于大多数集群配置。

2. 快速集群环境 #

indices.recovery.retry_delay_state_sync: 100ms

适用场景:

  • 快速网络
  • 小规模集群
  • 快速状态同步

3. 大规模集群 #

indices.recovery.retry_delay_state_sync: 1s

适用场景:

  • 大规模集群
  • 状态同步较慢
  • 避免频繁重试

4. 不稳定环境 #

indices.recovery.retry_delay_state_sync: 2s

适用场景:

  • 网络不稳定
  • 集群状态变化频繁
  • 避免重试风暴

推荐设置建议 #

集群规模网络环境推荐延迟说明
小型快速100-300ms快速重试
中型标准500ms默认配置
大型标准500ms-1s考虑延迟
大型慢速1-2s容忍延迟

与 retry_delay_network 的区别 #

特性retry_delay_state_syncretry_delay_network
默认值500ms5s
触发条件状态同步问题网络问题
典型场景节点注册、分片启动连接超时、网络中断
重试策略快速重试慢速重试

动态配置示例 #

# 更新集群配置
PUT /_cluster/settings
{
  "transient": {
    "indices.recovery.retry_delay_state_sync": "1s"
  }
}

注意事项 #

  1. 动态更新:此配置为动态配置,可在线修改
  2. 快速重试:相比网络延迟,状态同步问题通常解决较快
  3. 频繁重试风险:过小的值可能导致频繁重试
  4. 与集群状态相关:状态同步通常比网络问题恢复更快
  5. 合理设置:根据集群规模和状态同步速度调整