集群(Cluster)

一个 Elasticsearch 集群由一个或多个节点(Node)组成。集群有一个唯一的名称,每个节点通过这个名称加入集群。集群的主要职责是管理和协调所有节点的工作,确保数据分布和高可用性。

 

节点(Node)

一个节点是一个单独的 Elasticsearch 实例,它作为集群的一部分工作。每个节点都有一个唯一的名称和配置文件,定义其角色和行为。节点可以扮演多种角色:

索引(Index)

一个索引是包含类似文档集合的逻辑命名空间。每个索引有一个唯一的名称,并包含一组文档和相关设置。一个索引在物理上被分成多个分片(Shard),每个分片是一个独立的 Lucene 索引,可以存储在不同的节点上。

数据流(Data Flow)

  1. 索引数据
    • 客户端发送索引请求到协调节点。
    • 协调节点将请求路由到包含相关主分片的节点。
    • 主分片处理请求并将数据复制到副本分片。

       

  2. 搜索数据
    • 客户端发送搜索请求到协调节点。
    • 协调节点将请求分发到相关分片(主分片或副本分片)。
    • 各个分片处理搜索请求并返回结果。
    • 协调节点聚合结果并返回给客户端。

       

高可用性和容错

通过这种架构设计,Elasticsearch 能够处理大规模的数据和复杂的搜索需求,同时提供高可用性和容错能力。