Elasticsearch整体介绍

Elasticsearch就是为高可用和高可扩展而生,能够经过添加更多的服务器来水平扩展。node

空集群

  • 主节点(Master Node):集群中的一个结点会被选为主节点,它负责整个集群的变化,好比建立索引或者删除索引,以及对集群中结点的增长和删除。主节点不须要参与到文档级别的变化或者搜索中,这就意味着主节点不会由于流量的增大而成为瓶颈。任何结点均可以成为主节点。git

  • 我只启动了一个节点,因此天然这个结点就成为了主节点,所以如今所构建的集群就是一个单节点集群。做为用户,我能够与集群中的任意一个节点通讯,包括主节点。每一个节点都知道文档在那个节点上,而且它能够转发请求到相应的结点。咱们访问的结点负责收集各个节点返回的数据,最后一块儿返回给客户端。这一切都由Elasticsearch处理。github

集群健康 (Cluster Health)

咱们在Elasticsearch集群中能够监控不少信息,其中最重要的一项就是集群的健康,集群健康有三种状态:greenyellored服务器

curl -XGET localhost:9200/_cluster/health?pretty

若是一个集群中没有任何索引,返回一下信息:并发

{
   "cluster_name": "elasticsearch",
   "status": "green",
   "timed_out": false,
   "number_of_nodes": 1,
   "number_of_data_nodes": 1,
   "active_primary_shards": 0,
   "active_shards": 0,
   "relocating_shards": 0,
   "initializing_shards": 0,
   "unassigned_shards": 0
}

当我在集群是上创建了索引后,返回以下信息:curl

{
  "cluster_name" : "elasticsearch",
  "status" : "yellow",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 5,
  "active_shards" : 5,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 5
}
  • green:全部的主要分片(Primary Shard)和复制分片(Replica Shard)均可用elasticsearch

  • yellow:全部的主分片均可用,可是并非全部的复制分片均可用ide

  • red:不是全部的主要分片均可用ui

下面介绍分片,包括主分片和复制分片。搜索引擎

分片 (Shards)

  • 为了将数据添加到ES,咱们须要索引(index),在逻辑上,index是存储数据的地方,而在实际上,index是一个用来指向一个或者多个分片的的逻辑命名空间

  • 一个分片是一个最小级别的“工做单元”,它保存了索引中全部数据的一部分,一个分片是一个Lucene实例,而且它自己就是一个完整的搜索引擎咱们的文档存储在分片中,而且在分片中被索引。咱们的应用程序不会直接和分片通讯,取而代之的是直接和索引通讯

  • 分片是Elasticsearch在集群中分发数据的关键。把分片想象成数据的容器,文档存储在分片中,而后分片分配到你集群中的节点上。当集群扩容或者缩小,Elasticsearch会自动在节点间迁移分片,使得集群能够保持平衡。

  • 分片能够分为主分片(primary shard)复制分片(replica shard)索引中的每一个文档属于一个单独的主分片,因此主分片的数量决定了索引中最多可以存储多少数据。

  • 复制分片是主分片的一个副本,用来防止硬件故障致使的数据丢失,同时能够提供读请求,好比搜索或者从别的shards取回文档。

  • 当索引建立的时候,主分片的数量就肯定了,可是复制分片能够随时调整。

  • 文档的索引首先被存储在主分片上,而后并发复制到对应的复制节点上。这能够确保咱们的数据在主节点和复制节点上均可以被检索到。

  • 再次强调,主分片的数量在索引被建立时已经肯定,这个数量定义了你能存储到索引里数据的最大数量。然而,主分片和复制分片均可以处理读请求——搜索或者文档检索,因此数据的冗余越多,咱们能处理的搜索吞吐量就越大。

参考:[https://github.com/looly/elasticsearch-definitive-guide-cn]


若有错误,欢迎指正:)

相关文章
相关标签/搜索