--- title: "重新平衡允许策略配置" date: 2026-01-03 lastmod: 2026-01-03 description: "控制何时允许分片重新平衡的配置项说明" tags: ["集群配置", "分片管理", "负载均衡"] summary: "配置项作用 # 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` 配置项控制允许执行分片重新平衡的条件。此配置决定了在什么集群状态下,分片可以自动在节点间迁移以实现负载均衡。 ## 配置项类型 该配置项为**动态配置**,可以在运行时通过集群设置 API 进行修改。 ## 默认值 ``` indices_all_active ``` ## 是否必需 **可选配置项**(有默认值) ## 可选值 | 值 | 说明 | |---|------| | `always` | 只要分片副本组活跃即可重新平衡 | | `indices_primaries_active` | 所有索引的主分片都活跃后才可重新平衡 | | `indices_all_active` | 所有分片都活跃后才可重新平衡(默认) | ## 配置格式 ```yaml # 默认配置 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. 默认配置(推荐生产环境) ```yaml cluster.routing.allocation.allow_rebalance: indices_all_active ``` **特点:** - 最安全的重新平衡策略 - 确保数据完全可用后再平衡 - 适用于生产环境 ### 2. 快速恢复场景 ```yaml cluster.routing.allocation.allow_rebalance: always ``` **特点:** - 最激进的策略 - 分片活跃后立即重新平衡 - 可能导致部分不可用 ### 3. 保守策略 ```yaml cluster.routing.allocation.allow_rebalance: indices_primaries_active ``` **特点:** - 主分片优先策略 - 确保数据可读性 - 副本可能不同步 ## 推荐设置建议 | 环境 | 推荐配置 | 说明 | |-----|---------|------| | 生产环境 | indices_all_active | 最安全 | | 快速恢复 | always | 尽快平衡 | | 数据迁移 | indices_primaries_active | 保证可读性 | ## 注意事项 1. **动态更新**:此配置为动态配置,可在线修改 2. **数据可用性**:always 策略可能导致短暂不可用 3. **安全优先**:生产环境推荐使用 indices_all_active