剖析ElasticSearch基础分布式架构

ElasticSearch对复杂分布式机制的透明

前面已经介绍了ElasticSearch是一个分布式系统,分布式是为了应付大数据量。ElasticSearch它实现分布式的时候就已经将全部复杂的操做本身都实现了。好比:服务器

分片机制

ElasticSearch的分片机制给咱们带来了什么好处?当咱们想要存储一篇文档的时候不用去手动选择应该将文档存到那个分片上面。架构

claster discovery 集群发现机制

集群发现机制, 它能够在咱们有了多个elasticSearch节点的时候自动将咱们的ElasticSearch组成一个集群,不用咱们去配置(前提是同一台机器上, 不一样的机器须要配置IP)负载均衡

shard负载均衡

当咱们有3个节点须要分配25个shard的时候,ElasticSearch会自动将这25个分片平均分配到每一个节点上面分布式

shard副本

当咱们新增一个索引时,不须要去维护它的备份这些,ElasticSearch会自动帮咱们完成这些复杂的操做。大数据

请求路由

当咱们想要获取某条数据时,并不用管到底到那个分片或者节点上面去获取,ElasticSearch会自动将咱们的请求路由到有该数据的地方。cdn

集群扩容

当咱们新启动一个节点的时候会自动加入到当前已经有了的集群里。blog

shard重分配

当咱们有有没有分配的shard的时候,若是这个时候有了新的节点加入进来,那么会自动分配该shard索引

ElasticSearch的垂直扩容和水平扩容

垂直扩容

咱们如今有4台服务器,每台服务器的容量是1T,最多可以存储4T的数据 路由

如今的需求是要存6T数据,那么咱们若是采用垂直扩容的方案,升级其中两台服务器的容量为2T,而后让它加入集群就能够实现了,这是垂直扩容的解决方案。

水平扩容

水平扩容就是在原有的基础上面直接加上两台新服务器,容量是1T,那么这个时候究竟是使用水平扩容仍是垂直扩容呢?通常状况是是采用水平扩容,由于水平扩容的价格更便宜。 文档

增长或减小节点时数据的自动rebalance

在ElasticSearch集群中总有一些节点会负载要重一些,由于当咱们的分片分配的时候可能不能平均分配,某些节点须要担任更多的负载,好比咱们有10个分片,可是有只有3台服务器,那么就会有一台会多承担负载,这个时候若是咱们新增分片的时候,这个分片会自动分配到负载较轻的节点上面。

ElasitcSearch里面的master节点

默认状况下ElasticSearch中的会选择出一个master节点,这个master节点主要管理集群的元数据,好比说索引的建立和删除,维护索引元数据,节点的增长和移除,维护集群的元数据(元数据是指index,type,id这三个元数据)。

节点平等的分布式架构

在ElasticSearch中,全部的节点功能都是相同的也就是节点平等,均可以进行增删改查,好比如今有4个节点,user数据存储在节点1上面,咱们可能直接访问到节点1上面获取数据,也多是访问到节点2上面,而后节点2去节点1上面拿数据,而后在从节点2返回回来。

相关文章
相关标签/搜索