配置项作用 #
gateway.recover_after_nodes 配置项用于指定集群恢复状态所需要的最少节点总数(包括主节点和数据节点)。
当集群启动时,只有在达到指定数量的节点后,才会开始恢复集群状态。
配置项属性 #
- 配置路径:
gateway.recover_after_nodes - 数据类型:
integer - 默认值:
-1(表示禁用此条件) - 最小值:
-1 - 是否可选: 是
- 弃用状态: ⚠️ 已弃用
配置项详解 #
工作机制 #
集群启动过程
│
↓
读取配置 recover_after_nodes = 5
│
↓
检测当前节点总数(主节点 + 数据节点)
│
├──────── 当前数量 < 配置数量
│ │
│ ↓
│ 不开始恢复,继续等待
│ │
│ ↓
│ [调试日志] 节点数量不足
│ │
│ ↓
│ 等待更多节点加入...
│
└──────── 当前数量 ≥ 配置数量
│
↓
开始恢复集群状态
决策逻辑 #
// 简化的代码逻辑
if (recoverAfterNodes != -1) {
int totalNodes = nodes.getMasterAndDataNodes().size();
if (totalNodes < recoverAfterNodes) {
// 不开始恢复
logger.debug("not recovering from gateway, nodes_size (data+master) [{}] < recover_after_nodes [{}]",
totalNodes, recoverAfterNodes);
return;
}
}
// 开始恢复
配置建议 #
⚠️ 重要提示 #
此配置项已被标记为弃用,建议使用以下更精确的替代方案:
- 控制数据节点数量: 使用
gateway.recover_after_data_nodes - 控制主节点数量: 使用
gateway.recover_after_master_nodes
使用替代配置(推荐) #
# 推荐使用以下配置替代
gateway:
# 分别控制数据节点和主节点数量
recover_after_data_nodes: 3
recover_after_master_nodes: 2
代码示例 #
easysearch.yml 配置(已弃用) #
# 不推荐使用此配置
gateway:
recover_after_nodes: 5 # 期望 5 个节点才开始恢复
推荐的替代配置 #
gateway:
# 分别控制数据节点和主节点
recover_after_data_nodes: 3
recover_after_master_nodes: 2
# 配合超时使用
recover_after_time: 5m
完整的恢复配置 #
cluster:
discovery:
zen:
minimum_master_nodes: 2
gateway:
# 使用更精确的配置
recover_after_data_nodes: 3
recover_after_master_nodes: 2
recover_after_time: 10m
相关配置 #
| 配置项 | 状态 | 作用 |
|---|---|---|
gateway.recover_after_nodes | ⚠️ 已弃用 | 恢复所需的总节点数量 |
gateway.recover_after_data_nodes | ✅ 推荐 | 恢复所需的数据节点数量 |
gateway.recover_after_master_nodes | ⚠️ 已弃用 | 恢复所需的主节点数量 |
gateway.recover_after_time | ✅ 推荐 | 恢复等待的超时时间 |
为什么弃用 #
旧配置(过于简单):
recover_after_nodes: 5
↓
只控制总节点数,无法区分节点类型
新配置(更精确):
recover_after_data_nodes: 3
recover_after_master_nodes: 2
↓
可以精确控制不同类型节点的数量
使用场景 #
原本的使用场景(已弃用) #
此配置原适用于以下场景:
- 小型集群: 节点类型区分不明确的小型部署
- 简单控制: 只需要简单控制总节点数
- 逐步启动: 确保大部分节点上线后再恢复
推荐的替代方案 #
| 需求 | 推荐配置 |
|---|---|
| 确保数据可用性 | gateway.recover_after_data_nodes |
| 确保主节点冗余 | gateway.recover_after_master_nodes 或 discovery.zen.minimum_master_nodes |
| 超时强制恢复 | gateway.recover_after_time |
配置对比 #
旧配置方式(已弃用) #
gateway:
recover_after_nodes: 5
# 问题:无法区分是 3 数据 + 2 主节点,还是 4 数据 + 1 主节点
新配置方式(推荐) #
gateway:
recover_after_data_nodes: 3 # 确保至少 3 个数据节点
recover_after_master_nodes: 2 # 确保至少 2 个主节点
# 更精确的控制
注意事项 #
已弃用: 此配置已被弃用,建议使用更精确的替代配置。
包含所有节点: 此配置计算的是主节点和数据节点的总数。
默认禁用: 默认值为
-1,表示此条件被禁用。不够精确: 无法区分数据节点和主节点的具体数量要求。
动态更新: 此配置不支持动态更新。
迁移建议: 如果使用此配置,建议迁移到:
gateway.recover_after_data_nodesgateway.recover_after_master_nodesdiscovery.zen.minimum_master_nodes
配合使用: 可以与
recover_after_time配合使用,实现超时强制恢复。





