# 节点角色与分布

URL: https://caijiao.org/elasticsearch/05.admin/01.nodes-roles
Source: docs/elasticsearch/05.admin/01.nodes-roles.md
Description: 本章介绍 Elasticsearch 中各类节点角色的功能与分布策略，帮助你合理规划集群结构，实现性能与可用性的平衡。

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