【一】ElasticSearch学习记录-es的分布式架构

文章详细介绍了ElasticSearch的分布式架构,包括master节点的角色、选举策略和集群的节点发现机制。当master节点故障时,会触发选举过程,确保集群的稳定。选举期间,数据写入可能会受影响,但读取通常仍可进行。文章强调了quorum设置的重要性,以防止数据丢失和脑裂情况。
摘要由CSDN通过智能技术生成

ElasticSearch学习记录-es的分布式架构

一,阅读目标

  • es的分布式架构是怎样的?
  • es的master节点是什么?
  • es的master选举策略是什么?
  • es的master选举发生情况?
  • 如果在选举过程中,旧master恢复会怎样?
  • 选举过程中,还能写入数据吗?读取呢?会有数据丢失吗?

二,内容介绍

1.es简介

ElasticSearch 设计的理念就是分布式搜索引擎,底层其实还是基于 lucene 的。核心思想就是在多台机器上启动多个 ES 进程实例,组成了一个 ES 集群。ES 中存储数据的基本单位是索引index,其次还包含一些其他的概念mapping、document、field。
————————————————
版权声明:本文为CSDN博主「蒋楠鑫」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43111776/article/details/124952148

2.es分布式架构

es集群的几个重要角色:

角色名称英文名称备注
主节点master1.active master主节点,每个集群只有1个,2.候选节点,既能参加投票,也能被选举,3.投票节点,角色为master但设置了voting_only,只能投票,不能被选举。
数据节点data node存放数据
预处理节点Ingest Node默认情况下在所有的节点上启用 ingest

es集群架构示意图:
在这里插入图片描述
图片出自:https://m.elecfans.com/article/2016549.html 查看

下面总结一下上面链接内的描述,如果想看明细的可以点击上面的链接查看。

  • 节点发现
    es服务启动后,首先通过节点发现功能加入集群。利用es自己实现的ZenDiscovery功能,配置为:
discovery.seed_host:["ip:9300","ip"]
#不写端口,则默认为9300

配置信息讲解地址:https://blog.csdn.net/l1228xh/article/details/123526463

  • master选举
    集群可能有多个候选的master,但只会选择1个master。目的避免脑裂。es确定master的思路:少数服从多数,通过quorum配置确定。
discovery.zen.minimum_master__nodes:2
#2该参数必须设置为集群中master候选节点的quorum数量
#quorum数量计算公式:master候选节点数量/2+1
#举例:
#1、如果有10个节点,都是data node,也是master的候选节点。则quorum=10/2+1=6
#2、如果有3个master候选节点,100个数据节点。则quorum=3/2+1=2
#3、如果有2个节点,都是data node,也是master的候选节点。则quorum=2/2+1=2(有问题)
#如果其中一个节点挂了,那么master的候选节点只有一个,无法满足quorum数量。即无法选举出master。此时只能将quorum设置成1,但是设置为1有可能出现脑裂。
#总结:一般es集群的节点至少要有3个,quorum设置为2

配置信息讲解地址:https://blog.csdn.net/zuodaoyong/article/details/104719508/

  • 何时发起master选举

在ES中有两个和选举相关的工作进程专门用于检查节点的存活状态,分别为:
NodesFaultDetection:即NodesFD,用于定期检查集群中的节点是否存活
MasterFaultDetection:即MasterFD,作用是定期检查Master节点是否存活

因此如果是如下情况则发起选举:
1.当master-eligible节点数量小于法定票数:当主节点侦测到候选节点数量小于法定票数的时候,会主动放弃主节点身份。
2.当主节点宕机。

  • 如何选举master

触发选举机制后,先选出临时master,再选出真正的master并发布消息。

文章:
ES选举:Elasticsearch中Master选举完全解读

-如果在选举过程中,旧master恢复会怎样?
应该是加入新的master,具体信息,还待补充…

  • 选举过程中,还能写入数据吗?读取呢?会有数据丢失吗?

master功能:
master节点控制整个集群的元数据。只有Master Node节点可以修改节点状态信息及元数据(metadata)的处理,比如索引的新增、删除、分片路由分配、所有索引和相关 Mapping 、Setting 配置等等。

因此:
将ES的master节点关闭后,设置的是60s后进行master的选举,这60s内索引操作会受到影响吗?查询操作会受到影响吗?
背景:ES版本5.6, 具备master选举资格的节点为3个,有专门提供请求的client节点。
自己测试的结果:当把master节点停掉后,向索引中插入文档出现等待的情况(一直没有返回值)。也并没有出现500的返回值。
出处:
master宕机后验证

es如何选择协调节点:

https://link.csdn.net/?target=https%3A%2F%2Fwww.jianshu.com%2Fp%2Fae4f0e53795c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值