配置项作用 #
cluster.routing.allocation.allow_rebalance 配置项控制允许执行分片重新平衡的条件。此配置决定了在什么集群状态下,分片可以自动在节点间迁移以实现负载均衡。
配置项类型 #
该配置项为动态配置,可以在运行时通过集群设置 API 进行修改。
默认值 #
indices_all_active
是否必需 #
可选配置项(有默认值)
可选值 #
| 值 | 说明 |
|---|---|
always | 只要分片副本组活跃即可重新平衡 |
indices_primaries_active | 所有索引的主分片都活跃后才可重新平衡 |
indices_all_active | 所有分片都活跃后才可重新平衡(默认) |
配置格式 #
# 默认配置
cluster.routing.allocation.allow_rebalance: indices_all_active
# 更激进的策略
cluster.routing.allocation.allow_rebalance: always
# 保守的策略
cluster.routing.allocation.allow_rebalance: indices_primaries_active
工作原理 #
重新平衡条件检查:
┌─────────────────────────────────────────────────────────────────┐
│ 重新平衡条件检查 │
└─────────────────────────────────────────────────────────────────┘
触发重新平衡请求
│
▼
检查 allow_rebalance 设置
│
├── always
│ │
│ └── 直接允许重新平衡
│
├── indices_primaries_active
│ │
│ └── 检查所有主分片是否活跃
│ │
│ ├── 全部活跃 → 允许
│ └── 有未分配 → 拒绝
│
└── indices_all_active
│
└── 检查所有分片是否活跃
│
├── 全部活跃 → 允许
└── 有未分配 → 拒绝
使用场景 #
1. 默认配置(推荐生产环境) #
cluster.routing.allocation.allow_rebalance: indices_all_active
特点:
- 最安全的重新平衡策略
- 确保数据完全可用后再平衡
- 适用于生产环境
2. 快速恢复场景 #
cluster.routing.allocation.allow_rebalance: always
特点:
- 最激进的策略
- 分片活跃后立即重新平衡
- 可能导致部分不可用
3. 保守策略 #
cluster.routing.allocation.allow_rebalance: indices_primaries_active
特点:
- 主分片优先策略
- 确保数据可读性
- 副本可能不同步
推荐设置建议 #
| 环境 | 推荐配置 | 说明 |
|---|---|---|
| 生产环境 | indices_all_active | 最安全 |
| 快速恢复 | always | 尽快平衡 |
| 数据迁移 | indices_primaries_active | 保证可读性 |
注意事项 #
- 动态更新:此配置为动态配置,可在线修改
- 数据可用性:always 策略可能导致短暂不可用
- 安全优先:生产环境推荐使用 indices_all_active





