名词解释

集群(Cluster)

一个 Elasticsearch 集群由一至多个节点构成,每个节点有各自的角色。其中有一个为主节点,主节点通过选举产生,用于维护整个集群的状态。从外部来看,Elasticsearch 采用去中心化设计,整个集群在逻辑上是个整体,与任何一个节点的通信都是等价的。

网易云 Elasticsearch 服务创建的集群中,默认每个节点都包括 master、data、ingest 三种角色,即每个节点都有成为主节点的资格,也可以作为存储数据提供查询服务,以及执行数据转换等任务。

索引(Index)

Elasticsearch 面向文档,您可以存储完整的对象或者文档,并且对每一个文档的内容创建索引以便可以查询。如果将 Elasticsearch 与关系型数据库进行对比,索引对应 DB。

一个 Elasticsearch 集群可以包含多个索引。通过 API 可以对文档进行索引创建、查询、排序、过滤。

分片(Shard)

Elasticsearch 可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多片并分布到不同的节点上,构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。

副本(Replica)

Elasticsearch 可以设置多个索引的副本,副本的作用一是提高系统的容错性,当某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高Elasticsearch的查询效率,Elasticsearch会自动对搜索请求进行负载均衡。

重分布(Recovery)

Elasticsearch 集群在集群拓扑发生变化时会根据节点的负载对索引分片进行重新分配。

网易云 Elasticsearch 服务支持集群的横向扩容,当扩容时会触发集群的重分布。另外,当故障节点恢复后,也会触发集群的重分布。