--- title: "分片恢复状态同步重试延迟配置" date: 2026-02-13 lastmod: 2026-02-13 description: "控制分片恢复状态同步重试延迟的配置项说明" tags: ["索引配置", "分片恢复", "容错机制"] summary: "配置项作用 # 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_sync 500ms 状态同步重试延迟 indices.recovery.retry_delay_network 5s 网络问题重试延迟 indices.recovery.max_concurrent_operations 1 最大并发恢复操作数 工作原理 # 状态同步重试机制:" --- ## 配置项作用 `indices.recovery.retry_delay_state_sync` 配置项控制因集群状态同步问题导致分片恢复失败后的重试延迟时间。这些问题包括本地节点尚未在远程节点注册、远程分片尚未启动等状态同步问题。 ## 配置项类型 该配置项为**动态配置**,可以在运行时通过集群设置 API 进行修改。 ## 默认值 ``` 500ms ``` ## 是否必需 **可选配置项**(有默认值) ## 取值范围 ``` 0 ~ 正无穷 ``` ## 配置格式 ```yaml # 默认配置 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_sync` | 500ms | 状态同步重试延迟 | | `indices.recovery.retry_delay_network` | 5s | 网络问题重试延迟 | | `indices.recovery.max_concurrent_operations` | 1 | 最大并发恢复操作数 | ## 工作原理 状态同步重试机制: ``` ┌─────────────────────────────────────────────────────────────────┐ │ 状态同步重试 │ └─────────────────────────────────────────────────────────────────┘ 分片恢复请求 │ ▼ 检查状态同步 │ ├── 状态已同步 │ │ │ └── 继续恢复操作 │ └── 状态未同步 │ ├── 本地节点未在远程注册 ├── 远程分片未启动 └── 集群状态未更新 │ ▼ 等待 retry_delay_state_sync │ └── 重试恢复操作 ``` ## 使用场景 ### 1. 默认配置(推荐) ```yaml indices.recovery.retry_delay_state_sync: 500ms ``` 适用于大多数集群配置。 ### 2. 快速集群环境 ```yaml indices.recovery.retry_delay_state_sync: 100ms ``` **适用场景:** - 快速网络 - 小规模集群 - 快速状态同步 ### 3. 大规模集群 ```yaml indices.recovery.retry_delay_state_sync: 1s ``` **适用场景:** - 大规模集群 - 状态同步较慢 - 避免频繁重试 ### 4. 不稳定环境 ```yaml indices.recovery.retry_delay_state_sync: 2s ``` **适用场景:** - 网络不稳定 - 集群状态变化频繁 - 避免重试风暴 ## 推荐设置建议 | 集群规模 | 网络环境 | 推荐延迟 | 说明 | |---------|---------|---------|------| | 小型 | 快速 | 100-300ms | 快速重试 | | 中型 | 标准 | 500ms | 默认配置 | | 大型 | 标准 | 500ms-1s | 考虑延迟 | | 大型 | 慢速 | 1-2s | 容忍延迟 | ## 与 retry_delay_network 的区别 | 特性 | retry_delay_state_sync | retry_delay_network | |-----|----------------------|-------------------| | 默认值 | 500ms | 5s | | 触发条件 | 状态同步问题 | 网络问题 | | 典型场景 | 节点注册、分片启动 | 连接超时、网络中断 | | 重试策略 | 快速重试 | 慢速重试 | ## 动态配置示例 ```bash # 更新集群配置 PUT /_cluster/settings { "transient": { "indices.recovery.retry_delay_state_sync": "1s" } } ``` ## 注意事项 1. **动态更新**:此配置为动态配置,可在线修改 2. **快速重试**:相比网络延迟,状态同步问题通常解决较快 3. **频繁重试风险**:过小的值可能导致频繁重试 4. **与集群状态相关**:状态同步通常比网络问题恢复更快 5. **合理设置**:根据集群规模和状态同步速度调整