配置项作用 #
discovery.zen.bwc_ping_timeout 配置项用于控制集群在滚动升级过程中向后兼容 ping 请求的超时时间。
此配置主要用于混合版本集群(同时包含旧版本和新版本节点)的升级过渡阶段。
配置项属性 #
- 配置路径:
discovery.zen.bwc_ping_timeout - 数据类型:
TimeValue(时间值) - 默认值:
1ms(1毫秒) - 最小值:
1ms - 是否可选: 是
- 弃用状态: ⚠️ 已弃用
配置项详解 #
工作机制 #
滚动升级场景
旧版本节点 ────── 新版本节点
│ │
│ │
│ ←── BWC Ping ─── │
│ │
│ 等待 bwc_ping_timeout
│ │
│ │
↓ ↓
节点加入集群 节点加入集群
向后兼容模式 #
- 混合集群优先级: 在混合版本集群中,优先选举旧版本节点作为主节点
- 升级时机: 当最后一个旧节点关闭且新节点数量足够时,完成升级
- BWC Ping: 新版本节点向旧版本节点发送 ping 请求以确认升级状态
超时设置 #
// 节点激活后等待时间
bwcPingTimeout = discovery.zen.bwc_ping_timeout
// 在此时间后尝试加入主节点或执行引导升级
配置建议 #
⚠️ 重要提示 #
此配置项已被标记为弃用,主要用于版本升级的过渡阶段。
滚动升级场景 #
discovery.zen.bwc_ping_timeout: 1s
建议: 如果必须进行滚动升级,可以设置为 1s-3s,确保有足够时间完成版本握手。
默认配置 #
# 不配置,使用默认值 1ms
# 大多数情况下不需要配置此参数
代码示例 #
easysearch.yml 配置(已弃用) #
discovery:
zen:
bwc_ping_timeout: 1s # 不推荐配置
配合不安全滚动升级 #
discovery:
zen:
bwc_ping_timeout: 1s
unsafe_rolling_upgrades_enabled: true
相关配置 #
| 配置项 | 状态 | 作用 |
|---|---|---|
discovery.zen.bwc_ping_timeout | ⚠️ 已弃用 | BWC ping 超时 |
discovery.zen.ping_timeout | ✅ 有效 | 常规 ping 超时 |
discovery.zen.unsafe_rolling_upgrades_enabled | ⚠️ 已弃用 | 启用不安全滚动升级 |
使用场景 #
原本的使用场景 #
此配置原用于以下场景:
- 滚动升级: 从旧版本逐步升级到新版本
- 混合集群: 短期内同时运行不同版本的节点
- 版本握手: 新旧版本节点之间的兼容性确认
不再需要的场景 #
现代升级方式:
1. 蓝绿部署
├── 新集群完全独立
└── 通过数据同步完成迁移
2. 全停升级
├── 停止所有节点
└── 统一升级后重启
3. 滚动重启(同版本)
├── 逐个重启节点
└── 版本保持一致
注意事项 #
已弃用: 此配置已被标记为弃用,未来版本可能移除。
极短默认值: 默认值为
1ms,几乎立即触发,表示现代部署不需要此机制。升级方式: 建议使用蓝绿部署或其他现代升级方式,而不是依赖 BWC 机制。
版本一致性: 生产环境建议保持集群版本一致,避免混合版本运行。
测试验证: 如果必须使用滚动升级,应在测试环境中充分验证。
回退值: 如果未设置,会使用
discovery.zen.ping_timeout的值(默认 3 秒)。监控建议: 升级过程中密切监控集群状态和节点健康。





