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

Elasticsearch中的协调节点

协调节点(Coordinating Node)是 Elasticsearch 集群中**不保存数据、只负责“跑腿”**的一种节点角色。它把一个客户端请求拆成若干子任务,分发给真正存数据的数据节点,再把各数据节点的结果聚合后返回给客户端。


1. 三种常见节点角色

角色作用典型配置
Master-eligible负责集群管理(选主、集群状态变更)。node.master: true
Data Node真正存索引数据,执行增删改查、聚合等。node.data: true
Coordinating Node不存数据,只做请求路由、结果合并。node.master: false

从 7.x 开始,每个节点默认都是隐式协调节点;只要它接收了客户端请求,就临时充当“协调节点”的角色。
但生产环境通常会把“纯协调节点”独立出来,以减轻数据节点的 CPU/内存压力。


2. 工作流程(简化版)

  1. 客户端把搜索请求发到任意节点(通常是协调节点)。

  2. 协调节点解析请求,按路由规则算出需要访问哪些 分片

  3. 并行把子查询 转发 到对应的数据节点。

  4. 数据节点在本地执行查询、聚合,把结果返回给协调节点。

  5. 协调节点 合并、排序、分页、聚合 后,把最终结果返回给客户端。

示意图:

Client│▼
┌────────────┐
│ Coordinating│
│   Node      │
└──┬──────┬───┘│      │▼      ▼
┌──────┐ ┌──────┐
│Data1│ │Data2│
└──────┘ └──────┘

3. 为什么要单独部署协调节点

  • 隔离查询压力:高并发聚合或 scroll 查询会消耗大量 CPU/堆内存,扛在数据节点上会导致节点 GC 或 OOM。

  • 负载均衡:让协调节点专门做“网络 + 合并”,数据节点专注磁盘/索引。

  • 安全/网关:在防火墙外放一组无数据的协调节点,避免直接暴露数据节点。


4. 如何配置纯协调节点

elasticsearch.yml 中:

# 只做协调,不存数据,不参与选主
node.master: false
node.data: false
node.ingest: false   # 如果不用 ingest pipeline

启动后,它就成为一条“只转发、不落地”的管道。


5. 常见误区

  • “协调节点越多越好”
    错。协调节点会消耗 CPU/内存做合并、聚合;过多反而增加网络跳数。一般 1–3 台即可满足大多数场景。

  • “协调节点必须独立部署”
    错。小集群(<10 节点)完全可以由数据节点兼任;独立部署更多是为了 高并发或安全隔离


6. 一句话总结

协调节点 = 请求入口 + 结果合并器
不存数据但很关键,生产大集群建议独立出来,小集群可共用。

http://www.dtcms.com/a/351721.html

相关文章:

  • 详解kafka基础(一)
  • JavaScript常用的算法详解
  • Cherry-pick冲突与Git回滚
  • Oracle跟踪及分析方法
  • 力扣100+补充大完结
  • MySql 事务 锁
  • 推荐系统学习笔记(十四)-粗排三塔模型
  • 庖丁解牛:深入解析Oracle SQL语言的四大分类——DML、DDL、DCL、TCL
  • KubeBlocks for Oracle 容器化之路
  • 高校党建系统设计与实现(代码+数据库+LW)
  • 从零开始的 Docker 之旅
  • HIVE的高频面试UDTF函数
  • 【软考论文】论面向对象建模方法(动态、静态)
  • 无人机倾斜摄影农田航线规划
  • HTML应用指南:利用GET请求获取中国银行人民币存款利率数据
  • SciPy科学计算与应用:SciPy线性代数模块入门-矩阵运算与应用
  • 精确位置定位,AR交互助力高效作业流程​
  • 余承东:鸿蒙智行累计交付突破90万辆
  • 机器人视频感知架构深度解析:7条技术法则,打造低延迟实时感知与交互
  • 【ROS2】 忽略局域网多机通信导致数据接收的bug
  • 天气查询小程序项目报告
  • iOS 审核 4.3a【二进制加固】
  • Spring MVC 全解析:从核心原理到 SSM 整合实战 (附完整源码)
  • leetcode-python-383赎金信
  • 深度学习----由手写数字识别案例来认识PyTorch框架
  • 构建AI智能体:十四、从“计算”到“洞察”:AI大模型如何让时间序列数据“开口说话”
  • version GLIBCXX_3.4.30‘ not found (required by cmake)
  • JVM线上调优参数配置指南
  • 今日分享:C++ string 类模拟实现
  • 深度学习之第四课卷积神经网络CNN(一)