ElasticSearch分布式集群

前言

关于ElasticSearch集群概念这里就不多废话了,详细可见ElasticSearch基本介绍ElasticSearch集群系统架构

单节点集群

我们可以创建一个索引,为这个索引创建三个分片并创建副本,如下
在这里插入图片描述

{
    "settings":{
        "number_of_shards":3,
        "number_of_replicas":1
    }
}

在这里插入图片描述
上面的黄色代表集群健康值,黄色是说当前集群的全部主分区都正常运行,但是副本没有处于正常状态
绿色的0,1,2代表当前这个cat索引的分片数量,
灰色的0,1,2代表副本数量,Unassigned代表他们都没有分配到任何节点,在同一个节点上既可以保存原始数据又保存副本是没有意义的,因为一旦失去了这个节点,那么也就意味着失去了所有副本数据
注意:粗框框的是分片,稍微细一点的是副本

故障转移

当集群中只有一介节点在运行时,意味着会有一个单点故障问题-没有冗余。幸运的是,我们只需再启动一个节点即可防止数据丢失。当你在同一台机器上启动了第二个节点时,只要它和第一个节点有同样的chster.name配置,它就会自动发现集群并加入到其中。但是在不同机器上启动节点的时候,为了加入到同一集群,你需要配置一个可连接到的单播主机列表。之所以配置为使用单播发现,以防止节点无意中加入集群。只有在同一台机器上运行的节点才会自动组成集群。如果启动了第二个节点,我们的集群将会拥有两个节点的集群:所有主分片和副本分片都以被分配

上面我们演示了单节点情况下会存在数据不安全的问题,那么我么将集群的其他节点启动起来,那么这些副本就会自动分配在其他的节点上
在这里插入图片描述

水平扩容

Nolie 1和Node2上各有一个分片被迁移到了新的Node3节点,现在每个节点上都拥有2个分片,而不是之前的3个。这表示每个节点的硬件资源(CPU, RAM, I/O)将被更少的分片所共享,每个分片的性能将会得到提升。分片是一个功能完整的搜索引擎,它拥有使用一个节点上的所有资源的能力。我们这个拥有6个分片(3个主分片和3个副本分片)的索引可以最大扩容到6个节点,每个节点上存在一个分片,并且每个节点拥有的全部资源

在这里插入图片描述
如果扩容超过6个分片(3个分片3个副本)怎么办
主分片的数目在索引创建时就已经确定了下来。实际上,这个数目定义了这个索引能够存储的最大数据量。(实际大小取决于你的数据、硬件和使用场景。)但是,读操作搜索和返回数据-可以同时被主分片或副本分片所处理,所以当你拥有越多的副本分片时,也将拥有越高的吞吐量。在运行中的集群上是可以动态调整副本分片数目的,我们可以按需伸缩集群。让我们把副本数从默认的1增加到2
在这里插入图片描述

{
	"number_of_replicas":2
}

在这里插入图片描述

节点故障

我们模拟下Master节点宕机情况,体制master节点。
在这里插入图片描述
master宕机后那么剩余节点会通过ElasticSearch内部的选举机制选出新的Master节点,这里宕机了一个节点后,不是说整个集群不可用了,只是宕机后的那台机器上的分片和副本无法工作罢了,只是整体集群的性能会下降罢了,我们重新启动一下宕机的那个节点,那么他又会自动加入集群
在这里插入图片描述

路由计算&分片控制

路由计算-添加数据
在这里插入图片描述
我们现在有条数据,这个时候我们的ElasticSearch集群这么多节点这么多分片这么多副本的怎么知道放在哪呢,首先肯定不是先放在副本中的,是先存放在分片中的,只有分片中有的数据副本中才会有,这里数据存放在那个分片不是随机的分配的,而是使用一套规则,那么这个数据刷到那个分片的过程就是路由计算,路由计算是使用hash路由来的具体公式为hash(id)%主分片数量那么通过这个公式我们就能得到三个节点的位置

分片控制-查询数据
在我们上面的数据保存成功后,p2分片中就有了数据,那么对应的R2也会有数据,那么这个时候我们查询数据的话任意访问节点即可,因为任意节点上都有P2分片或者R2的副本,任意访问的那个节点称为协调节点,这个协调节点可以让我们的请求到数据真正的分片查询(在访问的当前节点压力较大时,也已请求调度到其他节点上),通常情况下分片控制是采用轮询策略实现的
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员劝退师-TAO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值