leader和follower

在Kafka中,每个topic都可以配置多个分区以及多个副本。每个分区都有一个leader以及0个或者多个follower,在创建topic时,Kafka会将每个分区的leader均匀地分配在每个broker上。我们正常使用kafka是感觉不到leader、follower的存在的。但其实,所有的读写操作都是由leader处理,而所有的follower都复制leader的日志数据文件,如果leader出现故障时,follower就会被选举为leader**。**所以,可以这样说:

l Kafka中的leader负责处理读写操作,而follower只负责副本数据的同步

l 如果leader出现故障,其他follower会被重新选举为leader

l follower像一个consumer一样,拉取leader对应分区的数据,并保存到日志数据文件中

AR、ISR、OSR

在实际环境中,leader有可能会出现一些故障,所以Kafka一定会选举出新的leader。在讲解leader选举之前,我们先要明确几个概念。Kafka中,把follower可以按照不同状态分为三类——AR、ISR、OSR。

  1. 分区的所有副本称为 「AR」(Assigned Replicas——已分配的副本)
  2. 所有与leader副本保持一定程度同步的副本(包括 leader 副本在内)组成 「ISR」(In-Sync Replicas——在同步中的副本)
  3. 由于follower副本同步滞后过多的副本(不包括 leader 副本)组成 「OSR」(Out-of-Sync Replias)
  4. AR = ISR + OSR
  5. 正常情况下,所有的follower副本都应该与leader副本保持同步,即AR = ISR,OSR集合为空

Controller

Kafka启动时,会在所有的broker中选择一个controller

leader和follower是针对partition,而controller是针对broker的

创建topic、或者添加分区、修改副本数量之类的管理任务都是由controller完成的

Kafka分区leader的选举,也是由controller决定的

Controller的选举

  1. 在Kafka集群启动的时候,每个broker都会尝试去ZooKeeper上注册成为Controller(ZK临时节点)
  2. 但只有一个竞争成功,其他的broker会注册该节点的监视器
  3. 一旦临时节点状态发生变化,就可以进行相应的处理
  4. Controller也是高可用的,一旦某个broker崩溃,其他的broker会重新注册为Controller

Controller选举partition leader

  1. 所有Partition的leader选举都由controller决定
  2. controller会将leader的改变直接通过RPC的方式通知需为此作出响应的Broker
  3. controller读取到当前分区的ISR,只要有一个Replica还幸存,就选择其中一个作为leader否则,则任意选这个一个Replica作为leader
  4. 如果该partition的所有Replica都已经宕机,则新的leader为-1

为什么不能通过ZK的方式来选举partition的leader?

Kafka集群如果业务很多的情况下,会有很多的partition

假设某个broker宕机,就会出现很多的partiton都需要重新选举leader

如果使用zookeeper选举leader,会给zookeeper带来巨大的压力。所以,kafka中leader的选举不能使用ZK来实现

kafka中leader和follower、AR、ISR、OSR、Controller的选举、为什么不能通过ZK的方式来选举partition的leader?相关推荐

  1. Kafka中ACKS LSO LEO LW HW AR ISR OSR解析

    文章目录 前言 名词解释 消息生产和消费流程 ACKS三种类型 AR.ISR.OSR ISR机制 LSO.LEO.LW.HW 前言 Kafka中ACKS三种策略,LSO.LEO.LW.HW.AR.IS ...

  2. kafka中AR、ISR、OSR以及HW、LEO的区别

    kafka中AR.ISR.OSR以及HW.LEO的关系 Kafka 为分区引入了多副本 (Replica) 机制, 通过增加副本数量可以提升容灾能力.同一分区的不同副本中保存的是相同的消息(在同一时刻 ...

  3. Kafka 中 AR、ISR、OSR 是什么?ISR 的伸缩性什么?

    相信大家已经对 kafka 的基本概念已经有一定的了解了,下面直接来分析一下 ISR 和 AR 的概念. 一.ISR and AR 简单来说,分区中的所有副本统称为 AR (Assigned Repl ...

  4. kafka中的ISR、AR又代表什么?ISR伸缩又是什么?

    kafka中的ISR.AR又代表什么?ISR伸缩又是什么? ​ 分区中的所有副本统称为AR(Assigned Repllicas).所有与leader副本保持一定程度同步的副本(包括Leader)组成 ...

  5. Kafka术语:AR、OSR、ISR、HW和LEO以及之间的关系

    kafka 多副本 Kafka 为分区引入了多副本(Replica)机制,通过增加副本数量可以提升容灾能力.同一分区的不同副本中保存的是相同的消息(当然在同一时刻,副本之间可能并非完全一样),副本之间 ...

  6. kafka-4.进阶,ISR,OSR,AR,LW,HW,LEO,ACK原理理论

    kafka 在zk里面可以看到kafka 谁拿到controller [zk: localhost:2181(CONNECTED) 6] get /kafka/controller {"ve ...

  7. kafka 中如何保证数据消息不丢失

    背景 前几天,去两家公司面试,面试的过程中, 两家公司的面试官都给我提了如标题这样的一个问题.因为之前对kafka有一些了解,但是没有对这个的问题做过总结,现场就凭着记忆的进行了回答,面试官也表示这个 ...

  8. Kafka中topic的Partition,Kafka为什么这么快,Consumer的负载均衡及consumerGroup的概念(来自学习笔记)

    1.1. Kafka中topic的Partition  在Kafka文件存储中,同一个topic下有多个不同partition,每个partition为一个目录,partiton命名规则为topic ...

  9. Kafka中的AR,ISR,OSR

    在查看topic详细信息的话可以看到有个Isr,一开始不明所以,于是深入去学习了,不看不知道一看吓一跳: 首先要引出一个问题,为什么要存在这些东西: 在数据同步的时候,如果发生leader死掉,并且重 ...

最新文章

  1. 半导体基础知识(4):无源,有源和机电组件
  2. 大数据druid查询不支持分页_Druid实时大数据分析查询(六)
  3. IETF:QUIC Version 1 (RFC 9000) 作为标准化版本现已发布
  4. Java 中 10 大坑爹功能!
  5. 搞定ReentrantReadWriteLock 几道小小数学题就够了
  6. Java面向对象三大特征
  7. 高格虚拟服务器,网络相关 篇一:利用Windows自带的HyperV,安装高恪x86软路由
  8. 三层交换机/路由器OSPF配置详解【华为eNSP实验】
  9. mysql删除图书信息,图书管理系统(一):出版社列表增加、删除和编辑
  10. faker假数据php,php faker 伪造数据
  11. w ndows10支持微信吗,windows10系统怎样安装微信客户端
  12. RFID-MFRC522射频识别模块,S50卡M1
  13. CIKM 2021 | DISENKGAT:知识图谱解耦表征学习
  14. 【总结】Java 日期时间
  15. C# winForm 定时拷贝覆盖文件小工具
  16. python实现注册功能_python注册、登录,python注册登录,#1、实现注册功能#
  17. #JSP#Tomcat下使用JSP调用JavaBean显示ClassNotFoundException
  18. GB/T25915.1法规基本标准-附 录 B(资料性)等级划分计算
  19. 关于2021/12/17国内bing不能正常访问的解决方法。
  20. 开通小米公交卡服务器维护中是什么意思,小米公交卡应用指南,前2点必须注意,3分钟教会...

热门文章

  1. 出价策略正在学习周期是多久,工作日修改和周末修改影响效果么?
  2. via和pad的区别
  3. 位图算法BitMap
  4. Flappy bird 小游戏的实现
  5. 【世界观】硅谷最重要文件:Netflix126页PPT完全汉化版
  6. 【软考备战·希赛网每日一练】2023年4月13日
  7. 财路网每日原创推送:隐私计算让人工智能更智能
  8. 杂谈~关于踩shit
  9. 《计算机网络--自顶向下方法》第二章--应用层
  10. 京东商城导航logo---用css