当前位置: 首页 > ai >正文

Elasticsearch 线程池

Elasticsearch 线程池「每个线程池到底采用哪种实现策略」:

 Elasticsearch 线程池(ThreadPool)中 **所有内置线程池名称的常量定义**。  
每个字符串常量对应一个 **线程池的名字(name)**,也就是你在 `ThreadPool.Names` 或 REST API 里能看到的线程池标识。

下面把每个名字翻译成中文含义(按常见用途):

| 常量名 | 含义 / 用途 |
|--------|-------------|
| **SAME** | 当前线程(不切换线程池),用于非常轻量或需要同步的操作。 |
| **GENERIC** | 通用线程池,处理各种一次性、非关键的后台任务。 |
| **GET** | 处理 `GET` / `MGET` 文档读取请求。 |
| **ANALYZE** | 执行 `_analyze` API(文本分析器相关)。 |
| **WRITE** | 处理写操作:index、update、delete、bulk 等。 |
| **SEARCH** | 处理普通搜索请求(非冻结索引)。 |
| **SEARCH_COORDINATION** | 搜索协调阶段(如聚合、排序、分页)专用,减轻 SEARCH 线程池压力。 |
| **AUTO_COMPLETE** | 自动补全 / 建议(completion suggester)专用。 |
| **SEARCH_THROTTLED** | 冻结索引或低优先级索引的搜索请求,限流处理。 |
| **MANAGEMENT** | 集群管理任务,如更新设置、创建索引、集群状态更新等。 |
| **FLUSH** | 执行 flush(内存缓存刷盘)。 |
| **REFRESH** | 执行 refresh(使文档可搜索)。 |
| **WARMER** | 旧版本中的索引预热(已废弃,7.x 后移除)。 |
| **SNAPSHOT** | 执行快照备份(snapshot/restore)。 |
| **SNAPSHOT_META** | 快照元数据操作(如列出仓库内容)。 |
| **FORCE_MERGE** | 强制执行段合并(force merge)。 |
| **FETCH_SHARD_STARTED** | 获取分片启动状态(集群发现阶段)。 |
| **FETCH_SHARD_STORE** | 获取分片存储信息(用于分片分配)。 |
| **SYSTEM_READ** | 系统级读操作(如读取 .security、.kibana 等系统索引)。 |
| **SYSTEM_WRITE** | 系统级写操作(如写 .security 索引)。 |
| **SYSTEM_CRITICAL_READ** | 关键系统读(如认证、授权)。 |
| **SYSTEM_CRITICAL_WRITE** | 关键系统写(如更新集群元数据)。 |

你可以通过:

```bash
GET /_cat/thread_pool?v
```

查看每个线程池的活跃线程、队列、拒绝情况。

这几个枚举值定义了 **Elasticsearch 线程池的类型(ThreadPoolType)**,决定了线程池的行为方式:

| 类型名称 | 中文含义 | 特点说明 |
|----------|----------|----------|
| **DIRECT** | 直接执行(无线程池) | 任务在当前线程中同步执行,**不切换线程**,**无队列**,**无并发限制**。<br>用于极轻量或必须同步的操作。 |
| **FIXED** | 固定大小线程池 | 线程数固定,队列大小也固定。<br>超过队列容量会触发拒绝策略(`AbortPolicy` 默认)。<br>常见于 `SEARCH`、`WRITE` 等高频线程池。 |
| **FIXED_AUTO_QUEUE_SIZE** | 固定线程 + 自适应队列 | **已废弃**,7.x 开始标为 `@Deprecated`,9.0 计划移除。<br>队列大小会根据负载动态调整(实验性功能),实际很少使用。 |
| **SCALING** | 弹性线程池 | 线程数按需创建,**空闲线程会被回收**。<br>适用于低频、突发任务,如 `MANAGEMENT`、`SNAPSHOT` 等。 |

### ✅ 一句话总结
- **DIRECT**:同步执行,不走池。
- **FIXED**:线程数和队列都固定,最常用。
- **FIXED_AUTO_QUEUE_SIZE**:废弃,别用。
- **SCALING**:按需创建线程,用完回收,适合低频任务。

你可以在源码里看到它们是通过 `ThreadPoolType` 枚举定义的,决定了线程池的构造方式。

| 线程池名称(Names.*) | 线程池类型(ThreadPoolType) | 设计意图简述 |
|------------------------|------------------------------|--------------|
| **SAME** | **DIRECT** | 当前线程立即执行,无池、无队列,极简路径。 |
| **GENERIC** | **SCALING** | 低频杂活,线程按需创建,用完即回收。 |
| **GET** | **FIXED** | 高并发 point-get,固定线程+固定队列,稳定。 |
| **ANALYZE** | **FIXED** | 文本分析请求量可控,FIXED 足够。 |
| **WRITE** | **FIXED** | 写流量大且持续,固定资源避免抖动。 |
| **SEARCH** | **FIXED** | 普通搜索主战场,独立固定池保障吞吐。 |
| **SEARCH_COORDINATION** | **FIXED** | 聚合/排序/分页协调阶段,独立出来防止阻塞 SEARCH。 |
| **MANAGEMENT** | **SCALING** | 集群管理任务低频突发,弹性线程即可。 |
| **FLUSH / REFRESH / WARMER** | **SCALING** | 后台数据管理操作,按需伸缩。 |
| **SNAPSHOT / SNAPSHOT_META** | **SCALING** | 备份相关任务,非持续高并发,弹性更省资源。 |
| **FORCE_MERGE** | **FIXED** | 合并段是重 IO 操作,固定线程数避免过度并发。 |
| **FETCH_SHARD_STARTED / FETCH_SHARD_STORE** | **SCALING** | 分片发现及存储信息拉取,启动阶段偶发,弹性即可。 |
| **SEARCH_THROTTLED** | **FIXED** | 冻结索引的“慢车道”,单线程+小队列,强制限流。 |
| **SYSTEM_READ / SYSTEM_WRITE** | **FIXED** | 系统索引读写要求稳定低延迟,用固定池。 |
| **SYSTEM_CRITICAL_READ / SYSTEM_CRITICAL_WRITE** | **FIXED** | 关键系统操作(如安全认证),独立固定线程保障 QoS。 |

### ✅ 一句话记忆
- **高频、关键路径** → 用 `FIXED`(固定线程)  
- **低频、突发任务** → 用 `SCALING`(弹性线程)  
- **极简同步** → 用 `DIRECT`(当前线程)

http://www.xdnf.cn/news/15151.html

相关文章:

  • 【八股消消乐】Kafka集群 full GC 解决方案
  • 数据湖和数据库对比
  • Linux->基础IO
  • DVWA靶场通关笔记-反射型XSS(Reflected High级别)
  • 亚矩阵云手机:重构物流供应链,让跨境包裹“飞”得更快更准
  • (C++)STL标准库(vector动态数组)(list列表)(set集合)(map键值对)相关对比,基础教程
  • Linux中Gitee的使用
  • 杭州乐湾科技有限公司的背景、产品体系与技术能力的全方位深度分析
  • 三维点云Transformer局部感受野构建:理论、方法与挑战
  • C++类模版1
  • Redis Cluster 手动部署(小白的“升级打怪”成长之路)
  • Vue》》总结
  • 用YOLOv5系列教程(1)-用YOLOv5轻松实现设备状态智能监控!工业级教程来了
  • 11. JVM中的分代回收
  • C语言习题三
  • 玩转rhel9 Apache
  • 贪心算法题解——划分字母区间【LeetCode】
  • Tom 和 Jerry 的网格迷宫大冒险
  • 深入理解设计模式:原型模式(Prototype Pattern)
  • Spring Boot 应用中,配置的加载优先级
  • 前端MQTT入门指南:从零到实战的完整流程
  • 利用scale实现图片放大案例
  • 家用智能摄像机PRV文件删除的恢复方法
  • 设计模式 - 反转原则:DIP(Dependence Inversion Principle)最佳实践
  • 手机识别数据集,2628张原始图片,支持yolo,coco json,pasical voc xml等格式的标注
  • Nginx 中的负载均衡策略
  • TensorFlow2 study notes[1]
  • NW710NW713美光固态闪存NW719NW720
  • 【每日刷题】回文数
  • c语言中的数组IV