Elasticsearch-5-基础分布式架构

上文中写了Elasticsearch的聚合分析,下钻分析,嵌套聚合等, 本文主要是写Elasticsearch的分布式机制, 扩容策略等

Elasticsearch对分布式机制的透明隐藏特性

Elasticsearch是一套分布式的系统,分布式是为了应对大数据量

  • 分片机制: 往ES插入数据的时候ES集群会自动分配到某一shard上,比如 之前用rest API插入数据时,我们并没有关心数据是怎么分配的,是分配到哪个shard上的
  • cluster discovery:集群发现机制,就是新启动一个es节点时,集群会自动发现节点并加入集群.
  • shard负载均衡:比如我们现在有3个es节点,总共要有25个shard要分配到3个节点上去,es会自动进行均匀分配,以保持每个节点均衡的读写负载请求
  • shard副本
  • 请求路由:将请求自动路由到对应处理的shard上
  • 集群扩容
  • shard重分配

我们在实际使用中并不需要关心这些,Elasticsearch会自动处理

Elasticsearch的垂直扩容与水平扩容

假设现在有6台服务器,每台服务器容量是1T,马上数据量要增长到8T,这个时候有两种方案:

  1. 垂直扩容:重新购置两台服务器,每台服务器的容量是2T,替换两台老的服务器,那么现在服务器总容量就是 4x1T + 2x2T =8T
  2. 水平扩容:新购置两台服务器,每台容量1T,直接加到集群中去,那么现在总容量就是8 x 1T = 8T

业界经常采用的方案,采购越来越多的普通服务器,性能比较一般,但是很多普通服务器组织在一起,就能构成强大的计算和存储能力

master节点

  1. 管理es集群的元数据,比如说索引的创建和删除,维护索引元数据,节点的增加和移除,维护集群的元数据
  2. 默认情况下,会自动选择出一台节点,作为master节点

节点对等的分布式架构

每个es节点都能接收请求,接收请求后自动路由到可以处理该请求的shard,并收集返回数据.