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

`TransportService` 是 **Elasticsearch 传输层的“中枢路由器”**

`TransportService` 是 **Elasticsearch 传输层的“中枢路由器”**,负责把节点间的 **所有请求(搜索、集群状态、索引、恢复、快照、许可证……)** 通过 **TCP 连接** 发出去、收回来,并管理 **连接生命周期、超时、重试、压缩、流控和反压**。  
一句话:  
> **“TransportService 就是 Elasticsearch 的『RPC 总线』,所有跨节点调用都要经过它。”**

---

### ✅ 1. 核心职责(8.x)

| 功能 | 说明 |
|---|---|
| **节点间 RPC** | 发送任意 `TransportRequest`,接收 `TransportResponse`,支持同步/异步/批量。 |
| **连接管理** | 维护与其他节点的长连接池(TCP keep-alive、重连、断线剔除)。 |
| **处理器注册** | 通过 `registerRequestHandler` 把各种业务逻辑(搜索、集群、索引、快照…)挂到 `action` 字符串上。 |
| **流控/反压** | 基于 Netty 的 `ByteBuf` 管理,防止 OOM。 |
| **压缩** | 支持压缩阈值配置,默认开启。 |
| **安全** | 集成 TLS/SSL、节点认证、许可控制。 |

---

### ✅ 2. 典型调用链(任意业务 → TransportService)

```text
业务代码(如 SearchTransportService)
↓ 构造 TransportRequest
TransportService.sendRequest(connection, ACTION_NAME, request, listener)
↓ Netty
对端节点 TransportService
↓ 查找 handler
TransportRequestHandler.handle(request, channel, task)
↓ 业务逻辑
channel.sendResponse(response)
```

---

### ✅ 3. 与 SearchTransportService 的关系

- **SearchTransportService** 只是对 `TransportService` 的 **薄封装**,把搜索相关的 `ACTION_NAME` 和序列化逻辑注册到 `TransportService`。
- 其他模块(如 `TransportClusterStateAction`、`TransportShardBulkAction`、`TransportSnapshotRestoreAction`…)同样通过 `TransportService` 完成跨节点通信。

---

### ✅ 4. 关键 API(8.x)

| 方法 | 用途 |
|---|---|
| `sendRequest(node, action, request, listener)` | 发请求 |
| `registerRequestHandler(action, requestReader, executor, handler)` | 注册处理逻辑 |
| `connectToNode(node)` / `disconnectFromNode(node)` | 连接管理 |
| `getConnection(node)` | 获取连接池对象 |

---

### ✅ 一句话总结

> `TransportService` 是 **Elasticsearch 所有节点间通信的“高速公路”**,搜索、集群、索引、恢复、快照等模块都只是在这条路上跑的不同“车次”。

http://www.lryc.cn/news/594116.html

相关文章:

  • Dify 1.6 安装与踩坑记录(Docker 方式)
  • python网络爬虫小项目(爬取评论)超级简单
  • EXPLAIN:你的SQL性能优化透视镜
  • ESXi6.7硬件传感器红色警示信息
  • 小程序和H5数据mock配置过程
  • Redis 概率型数据结构实战指南
  • 借助AI学习开源代码git0.7之四update-cache
  • 响应式编程入门教程第九节:UniRx 高级特性与自定义
  • 分治算法---归并
  • 7. 命令模式
  • 一维数组练题习~
  • 算法题(176):three states
  • windows11环境配置torch-points-kernels库编译安装详细教程
  • 如何优雅解决缓存与数据库的数据一致性问题?
  • 循环黑洞:用Python生成银河系特效图
  • tidyverse-数据可视化 - 图形的分层语法
  • Web开发 04
  • Work SSD基础知识
  • jxORM--编程指南
  • 试用SAP BTP 02:试用SAP HANA Cloud
  • MySQL笔记3
  • Oracle触发器:数据世界的“隐形守护者“
  • Uniapp 纯前端台球计分器开发指南:能否上架微信小程序 打包成APP?
  • Github 贪吃蛇 主页设置
  • 将EXCEL或者CSV转换为键值对形式的Markdown文件
  • 【Python数据采集】Python爬取小红书搜索关键词下面的所有笔记的内容、点赞数量、评论数量等数据,绘制词云图、词频分析、数据分析
  • (LeetCode 面试经典 150 题 ) 1. 两数之和 (哈希表)
  • ps2025下载与安装教程(附安装包) 2025最新版photoshop安装教程
  • 在NLP深层语义分析中,深度学习和机器学习的区别与联系
  • MacBook的ARM架构(M芯片)操作虚拟机的docker拉取镜像问题