教程 elasticsearch tutorial

节点角色与分布

Elasticsearch 集群由多个节点组成,每个节点可承担不同的角色。合理配置节点角色和分布策略,有助于实现高性能、高可用的搜索系统。

1. 常见节点角色

角色类型 描述
master 主节点 负责集群管理(创建索引、变更元数据)
data 数据节点 存储数据并执行 CRUD 和聚合查询
ingest 预处理节点 执行数据处理流水线(Ingest Pipeline)
coordinating 协调节点 接收请求并分发至数据节点,默认所有节点均可协调
ml 机器学习节点 用于 Elastic Stack 的内置机器学习任务
remote_cluster_client 用于跨集群搜索(CCS)场景

✅ 可通过设置 node.roles 明确指定角色,例如:

yaml
node.roles: [master, data]

`

2. 节点分布建议

  • 主节点数量建议为奇数(≥3),确保主选举机制可靠
  • 数据节点可根据业务量横向扩展,每台机器建议不超过 50GB/分片
  • 协调节点可分离部署,适合高并发读写场景
  • Ingest 节点适合日志清洗等前置处理场景

3. 示例集群结构(生产环境建议)

  • 3 个主节点(不作为数据节点)
  • 5 个数据节点
  • 2 个协调节点(仅处理外部请求)
  • 1~2 个 ingest 节点用于日志预处理

4. 高可用性策略

  • 部署节点于多个物理机或可用区
  • 开启副本(replica)分片保障数据冗余
  • 使用负载均衡器分发请求,保障协调层稳定

合理设计 Elasticsearch 节点角色与分布结构,是建设高性能、高可用搜索集群的基础。