主题
节点角色与分布
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 节点角色与分布结构,是建设高性能、高可用搜索集群的基础。