elasticsearch 是如何实现 master 选举的?

这篇具有很好参考价值的文章主要介绍了elasticsearch 是如何实现 master 选举的?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Elasticsearch 中的 master 选举机制主要是通过选举算法实现的。Elasticsearch 使用了 Raft 算法作为其选举算法,用于在集群中选举出一个 master 节点,以及确定新的 master 节点。

在 Elasticsearch 中,所有节点在启动时都会自动加入一个名为 “elasticsearch” 的集群,并且默认情况下,这个集群会自动开始选举一个 master 节点。在选举过程中,所有节点都会按照一定的规则来竞争成为 master 节点。

选举过程主要包括以下几个步骤:

  1. 心跳检测:每个节点都会定期向集群发送心跳信号,告诉其他节点它仍然存活。如果某个节点在一段时间内没有发送心跳信号,那么它就会被认为已经死亡,选举会重新开始。
  2. 候选者列表:当有节点想要成为 master 节点时,它会将自己添加到候选者列表中。候选者列表中的节点数量可以根据配置进行调整。
  3. 投票:当一个节点成为候选者后,它会向集群中的其他所有节点发送投票请求。每个节点在收到请求后,会根据一定的规则决定是否投票给这个候选者。投票规则通常会考虑节点的健康状况、存储的数据量、负载情况等因素。
  4. 选举结果:如果某个候选者得到了超过半数的投票,那么它就会成为新的 master 节点。如果两个或更多的候选者得到了相同的票数,那么集群将会再次进行选举。

需要注意的是,为了防止恶意节点滥用选举机制,Elasticsearch 还采用了许多其他的安全措施,例如数据一致性检查、节点认证等。这些措施可以确保选举过程的安全性和可靠性。

总的来说,Elasticsearch 的 master 选举机制是通过 Raft 算法和一系列安全措施实现的,以确保集群的高可用性和稳定性。

面试官:想了解 ES 集群的底层原理,不再只关注业务层面了。前置前提:
只有候选主节点(master:true)的节点才能成为主节点。
最小主节点数(min_master_nodes)的目的是防止脑裂。
核对了一下代码,核心入口为 findMaster,选择主节点成功返回对应 Master,否则返回 null。选举流程大致描述如下:
第一步:确认候选主节点数达标,elasticsearch.yml 设置的值
discovery.zen.minimum_master_nodes;
第二步:比较:先判定是否具备 master 资格,具备候选主节点资格的优先返回;若两节点都为候选主节点,则 id 小的值会主节点。注意这里的 id 为 string 类型。题外话:获取节点 id 的方法。
GET /_cat/nodes?v&h=ip,port,heapPercent,heapMax,id,name ip port heapPercent heapMax id name文章来源地址https://www.toymoban.com/news/detail-855761.html

到了这里,关于elasticsearch 是如何实现 master 选举的?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux查看es节点使用情况,elasticsearch(es) 如何查看当前集群中哪个节点是主节点(master)

    elasticsearch 查看当前集群中的 master 节点是哪个需要使用 _cat 监控命令,具体如下。 查看方法 es 主节点确定命令,以 kibana 上查看示例如下: GET _cat/nodesv 返回结果示例如下: ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name 172.16.16.188 52 99 5 2.59 1.70 1.45 mdi - elastic3

    2023年04月15日
    浏览(47)
  • Elasticsearch:如何从 Elasticsearch 集群中删除数据节点

    Elasticsearch 集群通常包含多个节点,并且可能存在需要从集群中删除节点的情况。 应谨慎执行此过程,以确保数据的完整性和可用性。 在本文中,我们将引导你完成从 Elasticsearch 集群安全删除节点的步骤。 在尝试从 Elasticsearch 集群中删除节点之前,确保集群处于健康状态(

    2024年02月07日
    浏览(51)
  • ZooKeeper的应用场景(集群管理、Master选举)

    随着分布式系统规模的日益扩大,集群中的机器规模也随之变大,因此,如何更好地进行集群管理也显得越来越重要了。 所谓集群管理,包括集群监控与集群控制两大块,前者侧重对集群运行时状态的收集,后者则是对集群进行操作与控制。在日常开发和运维过程中,我们经

    2024年02月12日
    浏览(34)
  • Elasticsearch 索引模板、生命周期策略、节点角色

    索引模板可以帮助简化创建和二次配置索引的过程,让我们更高效地管理索引的配置和映射。 索引生命周期策略是一项有意义的功能。它通常用于管理索引和分片的热(hot)、温(warm)和冷(cold)数据,以及定期删除过期的数据,以确保Elasticsearch的健康运行。 Elasticsearch集

    2024年04月16日
    浏览(38)
  • Sharding-JDBC 自定义一致性哈希算法 + 虚拟节点 实现数据库分片策略

    分片操作是分片键 + 分片算法,也就是分片策略。目前Sharding-JDBC 支持多种分片策略: 标准分片策略 对应StandardShardingStrategy。提供对SQL语句中的=, IN和BETWEEN AND的分片操作支持。 复合分片策略 对应ComplexShardingStrategy。复合分片策略。提供对SQL语句中的=, IN和BETWEEN AND的分片操作

    2024年02月02日
    浏览(64)
  • 浅谈Zookeeper集群选举Leader节点源码

    写在前面: zookeeper源码比较复杂,本文讲解的重点为各个zookeeper服务节点之间的state选举。至于各个节点之间的数据同步,不在文本的侧重讲解范围内。 在没有对zookeeper组件有一个整体架构认识的基础上,不建议直接死磕细节。本文写作的目的也是基于此,阅读本文,希望读

    2024年02月07日
    浏览(44)
  • Zookeeper快速入门(Zookeeper概述、安装、集群安装、选举机制、命令行操作、节点类型、监听器原理)

    1.1 概述 Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。 1、Zookeeper工作机制 Zookeeper从设置模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责储存和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生

    2024年03月28日
    浏览(58)
  • Kafka学习--3、Kafka Broker、节点服役和退役、Kafka 副本、Leader 选举流程、故障处理

    1.1 Kafka Broker工作流程 1.1.1 Zookeeper储存的Kafka信息 (1)启动Zookeeper集群、再启动Kafka集群,然后启动Zookeeper客户端 (2)通过ls命令可以查看kafka相关信息。 1.1.2 Kafka Broker总体工作流程 1、模拟Kafka上下线,Zookeeper中数据变化 (1)查看/kafka/brokers/ids 路径上的节点。 (2)查看

    2024年02月10日
    浏览(44)
  • 【ROS】如何让ROS中节点实现数据交换Ⅱ --服务通信

    Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法…感兴趣就关注我吧!你定不会失望。 本章将介绍如何通过服务通信的方式实现节点数据交换以及ROS相关指令 在ros中,一个节点想要获取某种服务(例如: 一个节点想要获取此时的相机数据,节点就需要向相机发送一个请

    2024年02月03日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包