--- title: "Refresh 线程池核心大小配置" date: 2026-03-18 lastmod: 2026-03-18 description: "thread_pool.refresh.core 配置项用于控制索引刷新线程池的核心线程数。" tags: ["线程池", "索引刷新", "数据可见性", "ThreadPool"] summary: "配置项作用 # thread_pool.refresh.core 配置项用于控制索引刷新线程池的核心线程数。 Refresh 线程池用于执行索引刷新操作,将内存中的更改刷新到磁盘,使新文档可被搜索。 配置项属性 # 配置路径: thread_pool.refresh.core 数据类型: Integer(整数) 默认值: 1 是否可选: 是 作用域: NodeScope(节点级别) 动态更新: 是(可以动态更新,无需重启) 配置项详解 # 工作机制 # Refresh 线程池架构 线程池类型: SCALING (可伸缩) 核心线程: core (默认 1) 最大线程: max = (CPU + 1) / 2, 最大 10 保活时间: keep_alive (默认 5m) Refresh 操作: ├── 将内存缓冲写入磁盘 ├── 创建新的 Lucene 段 ├── 使新文档可搜索 └-- 更新事务日志 与 Flush 的区别 # Refresh vs Flush: Refresh: ├── 轻量级操作 ├── 内存到磁盘 ├── 使数据可搜索 ├── 频繁执行 (默认 1s) └-- 快速完成 Flush: ├── 重量级操作 ├── 缓冲到磁盘 ├── 持久化数据 ├── 较少执行 └-- 耗时较长 配置建议 # 默认配置 # thread_pool: refresh: core: 1 # 默认值 高刷新频率 # thread_pool: refresh: core: 2 相关配置 # 配置项 作用 默认值 refresh." --- ## 配置项作用 `thread_pool.refresh.core` 配置项用于控制**索引刷新线程池的核心线程数**。 Refresh 线程池用于执行索引刷新操作,将内存中的更改刷新到磁盘,使新文档可被搜索。 ## 配置项属性 - **配置路径**: `thread_pool.refresh.core` - **数据类型**: `Integer`(整数) - **默认值**: `1` - **是否可选**: 是 - **作用域**: NodeScope(节点级别) - **动态更新**: 是(可以动态更新,无需重启) ## 配置项详解 ## 工作机制 ``` Refresh 线程池架构 线程池类型: SCALING (可伸缩) 核心线程: core (默认 1) 最大线程: max = (CPU + 1) / 2, 最大 10 保活时间: keep_alive (默认 5m) Refresh 操作: ├── 将内存缓冲写入磁盘 ├── 创建新的 Lucene 段 ├── 使新文档可搜索 └-- 更新事务日志 ``` ## 与 Flush 的区别 ``` Refresh vs Flush: Refresh: ├── 轻量级操作 ├── 内存到磁盘 ├── 使数据可搜索 ├── 频繁执行 (默认 1s) └-- 快速完成 Flush: ├── 重量级操作 ├── 缓冲到磁盘 ├── 持久化数据 ├── 较少执行 └-- 耗时较长 ``` ## 配置建议 ## 默认配置 ```yaml thread_pool: refresh: core: 1 # 默认值 ``` ## 高刷新频率 ```yaml thread_pool: refresh: core: 2 ``` ## 相关配置 | 配置项 | 作用 | 默认值 | |--------|------|--------| | `refresh.core` | 核心线程数 | 1 | | `refresh.max` | 最大线程数 | (CPU+1)/2, 最大10 | | `refresh.keep_alive` | 线程保活时间 | 5m | ## 注意事项 1. **默认值**: 默认值为 `1`。 2. **动态更新**: 支持动态更新。 3. **与 refresh_interval 配合**: 高刷新频率时可能需要增加核心线程。