核心组件介绍
Elasticsearch的核心组件有节点、集群、分片和索引。本章节对核心组件概念进行介绍。
如图1所示为Elasticsearch的核心组件示例图,其中节点分为主节点(Master node)和从节点(Slave node),P和R代表分片以及其副本分片。
节点(Node)
节点是Elasticsearch集群中的一个服务器,它负责存储数据和处理客户端请求。节点可以通过配置文件或启动参数设置角色,如主节点、数据节点、采集节点(Ingest)、协调节点等,节点类型说明如表1所示。通常来说,在一个集群中,有一个主节点多个从节点。
集群(Cluster)
集群是由一个或多个节点组成的,它们共同协作提供数据的存储和搜索服务。集群通过集群名称(cluster.name)来区分,同一个集群中的所有节点使用相同的集群名称,确保不同集群之间不会发生数据共享。集群节点共同承担数据存储和负载处理的压力,当有节点加入集群中或者从集群中移除节点时,集群将会重新平均分布所有的数据,保证每个节点负载均衡。
索引(Index)
基本概念 |
说明 |
|---|---|
索引 |
是数据存储的逻辑单元(类似于数据库),是具有相似特征的文档集合。索引可以包含一个或多个类型。 |
类型 |
类型类似于数据库中的表。文档类型使得同一个索引中在存储结构不同的文档时,只需要依据文档类型就可以找到对应的参数映射信息,方便文档的存储。 |
文档 |
文档是可以被索引的基本单位,特指最顶层结构或根对象序列化成的JSON数据。文档相当于数据库中的行。一个类型可以包含多个文档。 |
字段 |
字段是组成文档的最小单位。相当于数据库中的列。每个文档包含多个字段。 |
分片(Shard)
分片是索引数据的子集,它可以将一个大的索引拆分成多个部分,分布在不同的节点上。每个分片是一个Lucene的实例。分片可以是主分片(Primary Shard)或副本分片(Replica Shard)。副本是分片的复制,可以提高数据的可用性和搜索性能。副本可以分布在不同的节点上,当主分片发生故障时,副本可以升级为主分片。
