Elasticsearch(八)简述 Elasticsearch 的分布式架构

对复杂分布式机制的透明隐藏特性
  • Elasticsearch 是一套分布式系统,分布式是为了应对大数据量,Elasticsearch 为我们隐藏了复杂的分布式机制,符合开箱即用的特点

  • 分片机制(之前我们随随便便就将一些 document 插入到 Elasticsearch 集群中了,我们并不关心数据是怎么进行分片的,数据到哪个 shard 中去了,这些都是 Elasticsearch 内部帮我们做好的,隐藏了复杂的实现,我们直接用就好了)

  • cluster discovery(集群发现机制,之前在做集群 status 从 "yellow" 转 "green" 的实验中,直接启动第二个 Elasticsearch 进程,进程作为一个 node 自动就发现了集群,并且加入了进去,还接受了部分数据(replica shard))

  • shard 负载均衡(假设现在有 25 个 shard 要分配到 3 个节点上去,Elasticsearch 会自动进行均匀分配,以保证每个节点均衡的读写负载请求)

垂直扩容与水平扩容
  • 垂直扩容:采购更强大的服务器,成本非常高昂,而且会有瓶颈。

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

假设:6 台服务器,每台容纳 1 T数据,数据量马上要增长到 8 T,这时候两个扩容方案:
(1)垂直扩容:重新购置两台服务器,每台服务器的容量是 2 T,替换掉老的两台服务器,那么现在是 6 台服务器,总容量就是 4 * 1T + 2 * 2T = 8T

(2)水平扩容:重新购置两台服务器,每台服务器的容量是 1 T,直接加入到集群中去,那么现在是 8 台服务器,总容量就是 8 * 1T = 8T(业界几乎都采用这种方式)

数据 rebalance

总有某些节点的负载会重一些,承载的数据量和请求量会大一些。当增加或者减少节点时数据 rebalance,以保持负载均衡。

master 节点
  • 管理 Elasticsearch 集群中的元数据:比如索引的创建和索引的删除,维护索引元数据;节点的增加和移除,维护集群元数据。

  • 默认情况下,会自动选择一台节点作为 master 节点。

注意:master 节点不承载所有的请求,所以不会是一个单点瓶颈。(这句话的意思是说并不是因为它是 master 节点,所以所有请求都由他来转发,而是每个节点都有可能被请求到)

节点对等的分布式架构
  • 节点对等,每个节点都能接收所有请求
  • 自动请求路由
  • 相应收集数据
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容