配置项作用 #
thread_pool.fetch_shard_store.core 配置项用于控制分片存储元数据获取线程池的核心线程数。
此线程池负责在分片迁移、恢复等操作中,异步获取各个节点的分片存储元数据信息。
配置项属性 #
- 配置路径:
thread_pool.fetch_shard_store.core - 数据类型:
Integer(整数) - 默认值:
1 - 是否可选: 是
- 作用域: NodeScope(节点级别)
- 动态更新: 是(可以动态更新,无需重启)
配置项详解 #
工作机制 #
Fetch Shard Store 线程池用途
线程池类型: SCALING (可伸缩)
使用场景:
1. 分片迁移
├── 需要迁移分片
├── 查询源节点存储信息
├── 获取文件大小、修改时间
└-- 确定迁移策略
2. 分片恢复
├── 需要恢复分片
├── 查询可用节点存储
├── 对比分片版本
└-- 选择最佳恢复源
3. 存储信息查询
├── 获取分片文件列表
├── 检查磁盘使用情况
├── 验证数据完整性
└-- 辅助决策
4. 集群平衡
├── 分析存储分布
├── 评估节点负载
├── 计算迁移需求
└-- 执行平衡操作
与 Fetch Shard Started 的区别 #
两个线程池的对比
FetchShardStarted:
├── 用途: 获取分片启动状态
├── 时机: 集群启动/恢复时
├── 内容: 分片是否启动、版本号
├── 使用: GatewayAllocator
└-- 目标: 决定主分片位置
FetchShardStore:
├── 用途: 获取分片存储信息
├── 时机: 分片迁移/恢复时
├── 内容: 文件列表、大小、时间戳
├── 使用: 迁移/恢复决策
└-- 目标: 确定存储状态
配合使用:
├── Started: 决定谁来当主分片
├── Store: 决定如何迁移/恢复
└-- 两者协同完成集群管理
core 设置影响 #
core 值的影响分析
core = 1 (默认):
├── 资源占用: 最小 ✅
├── 处理能力: 标准
├── 迁移速度: 适中
└-- 适用: 大多数场景 ✅
core = 2-4:
├── 资源占用: 较小
├── 处理能力: 较高
├── 迁移速度: 快
└-- 适用: 频繁迁移场景
core > 4:
├── 资源占用: 中等
├── 处理能力: 高
├-- 迁移速度: 很快
└-- 适用: 大规模迁移 (谨慎)
配置建议 #
默认配置(推荐) #
thread_pool:
fetch_shard_store:
core: 1 # 默认值
建议: 大多数场景使用默认值。
频繁迁移场景 #
thread_pool:
fetch_shard_store:
core: 2
max: 16
建议: 频繁进行分片迁移的场景。
大规模集群 #
thread_pool:
fetch_shard_store:
core: 4
max: 32
keep_alive: 5m
建议: 超大规模集群,需要快速获取存储信息。
动态更新 #
PUT /_cluster/settings
{
"transient": {
"thread_pool.fetch_shard_store.core": 2
}
}
相关配置 #
| 配置项 | 作用 | 默认值 |
|---|---|---|
fetch_shard_store.core | 核心线程数 | 1 |
fetch_shard_store.max | 最大线程数 | 2 × CPU核心数 |
fetch_shard_store.keep_alive | 线程保活时间 | 5m |
注意事项 #
默认值: 默认值为
1,适用于大多数场景。动态更新: 支持动态更新,无需重启。
与 Started 配合: 应与 fetch_shard_started 配合配置。
迁移影响: 影响分片迁移速度。
合理设置: 根据迁移频率调整。
监控建议: 监控分片迁移时间。
集群一致性: 建议集群中各节点保持一致。





