Elasticsearch集群数据插入节点流转及官方架构说明咨询
Elasticsearch集群数据写入路径及架构说明
集群背景
- 集群角色划分:独立的master角色节点、data角色节点、coordinate(协调节点)、ingest(摄入节点)
- 已配置的Ingest Pipeline(用于在数据摄入时为文档添加
@timestamp字段,值为数据摄入时间):
PUT _ingest/pipeline/dataocean-timestamp-pipeline { "description": "Adds a field to a document with the time of ingestion", "processors": [ { "set": { "field": "@timestamp", "override": false, "ignore_empty_value": true, "ignore_failure": true, "value": "{{_ingest.timestamp}}" } } ] }
数据写入路径说明
当客户端通过协调节点地址写入数据时,完整流转路径为:协调节点 → 摄入节点 → 协调节点 → 数据节点,具体流程如下:
- 协调节点作为集群对外入口,接收客户端的写入请求
- 若请求指定了ingest pipeline(或集群默认启用了pipeline),协调节点会将请求转发至可用的ingest节点
- ingest节点执行pipeline中的处理器逻辑(如本案例中设置
@timestamp字段),完成数据预处理 - 预处理完成后,ingest节点将处理后的文档回传给协调节点
- 协调节点根据文档路由规则(默认基于
_id或指定routing字段),将文档转发至对应的data节点进行存储 - master节点仅负责集群元数据管理、分片分配等控制类操作,不参与数据写入的业务流程
若做简化概括,也可表述为协调节点→摄入节点→数据节点,这是对核心流转环节的常用总结。
官方架构说明
Elasticsearch官方文档在「集群架构设计」和「数据摄入流程」相关章节中,对各角色节点的职责及数据流转逻辑有明确说明:
- 协调节点:作为客户端请求的统一入口,负责请求路由、负载均衡,本身不存储数据也不执行预处理
- 摄入节点:专门负责数据预处理工作,执行ingest pipeline定义的所有处理器逻辑
- 数据节点:负责存储文档数据、执行搜索和聚合等数据操作
- master节点:维护集群元数据信息,管理分片分配、节点加入/退出等集群状态变更
内容的提问来源于stack exchange,提问作者hello_world
相关产品推荐
相关产品推荐

