
一个 Elasticsearch 集群由一个或多个节点(Node)组成。集群有一个唯一的名称,每个节点通过这个名称加入集群。集群的主要职责是管理和协调所有节点的工作,确保数据分布和高可用性。
处理节点(Ingest Node):执行预处理数据的管道,例如日志数据的解析和转换。
一个节点是一个单独的 Elasticsearch 实例,它作为集群的一部分工作。每个节点都有一个唯一的名称和配置文件,定义其角色和行为。节点可以扮演多种角色:
处理节点(Ingest Node):处理文档预处理任务,可以在数据索引前执行数据管道。
一个索引是包含类似文档集合的逻辑命名空间。每个索引有一个唯一的名称,并包含一组文档和相关设置。一个索引在物理上被分成多个分片(Shard),每个分片是一个独立的 Lucene 索引,可以存储在不同的节点上。
分片分配:Elasticsearch 会自动将分片分配到不同的节点上,以均衡负载和提高容错能力。
主分片处理请求并将数据复制到副本分片。
协调节点聚合结果并返回给客户端。
自动恢复:当节点失效或重新加入集群时,Elasticsearch 会自动重新分配分片以恢复集群的平衡和数据的高可用性。
通过这种架构设计,Elasticsearch 能够处理大规模的数据和复杂的搜索需求,同时提供高可用性和容错能力。