跳转至

ELK Stack

Elasticsearch近乎实时(NRT)的搜索平台,从索引文档到可搜索文档的时间有一点延迟(通常是一秒)

集群是一个或多个节点(服务器)的集合,它们共同保存您的整个数据,并提供跨所有节点的联合索引和搜索功能。群集由唯一名称标识,默认情况下为“elasticsearch”。此名称很重要,因为如果节点设置为按名称加入群集,则该节点只能是群集的一部分

节点是作为群集一部分的单个服务器,存储数据并参与群集的索引和搜索功能。与集群一样,节点由名称标识,默认情况下,该名称是在启动时分配给节点的随机通用唯一标识符(UUID)

索引是具有某些类似特征的文档集合。文档是可以编制索引的基本信息单元。索引可能存储大量可能超过单个节点的硬件限制的数据。创建索引时,只需定义所需的分片数即可。每个分片本身都是一个功能齐全且独立的“索引”,可以托管在集群中的任何节点上

分片Sharding很重要,主要有两个原因:

  • 它允许您水平分割/缩放内容量
  • 它允许您跨分片(可能在多个节点上)分布和并行化操作,从而提高性能/吞吐量

复制Replication很重要,主要有两个原因:

  • 它在碎片/节点出现故障时提供高可用性。因此,请务必注意,副本分片永远不会在与从中复制的原始/主分片相同的节点上分配
  • 它允许您扩展搜索量/吞吐量,因为可以在所有副本上并行执行搜索

总而言之,每个索引可以拆分为多个分片。索引也可以复制为零(表示没有副本)或更多次。复制后,每个索引都将具有主分片(从中复制的原始分片)和副本分片(主分片的副本)。可以在创建索引时为每个索引定义分片和副本的数量。创建索引后,您可以随时动态更改副本数,但不能在事后更改分片数

默认情况下,Elasticsearch中的每个索引都分配了5个主分片和1个副本,这意味着如果群集中至少有两个节点,则索引将包含5个主分片和另外5个副本分片(1个完整副本),总计为每个索引10个分片

Bash
curl -X PUT "localhost:9200/customer?pretty"    #创建名为customer的索引

curl -X GET "localhost:9200/_cat/indices?v"     #列出所有索引