kafka中leader和follower、AR、ISR、OSR、Controller的选举、为什么不能通过ZK的方式来选举partition的leader?
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。
- 分区的所有副本称为 「AR」(Assigned Replicas——已分配的副本)
- 所有与leader副本保持一定程度同步的副本(包括 leader 副本在内)组成 「ISR」(In-Sync Replicas——在同步中的副本)
- 由于follower副本同步滞后过多的副本(不包括 leader 副本)组成 「OSR」(Out-of-Sync Replias)
- AR = ISR + OSR
- 正常情况下,所有的follower副本都应该与leader副本保持同步,即AR = ISR,OSR集合为空
Controller
Kafka启动时,会在所有的broker中选择一个controller
leader和follower是针对partition,而controller是针对broker的
创建topic、或者添加分区、修改副本数量之类的管理任务都是由controller完成的
Kafka分区leader的选举,也是由controller决定的
Controller的选举
- 在Kafka集群启动的时候,每个broker都会尝试去ZooKeeper上注册成为Controller(ZK临时节点)
- 但只有一个竞争成功,其他的broker会注册该节点的监视器
- 一旦临时节点状态发生变化,就可以进行相应的处理
- Controller也是高可用的,一旦某个broker崩溃,其他的broker会重新注册为Controller
Controller选举partition leader
- 所有Partition的leader选举都由controller决定
- controller会将leader的改变直接通过RPC的方式通知需为此作出响应的Broker
- controller读取到当前分区的ISR,只要有一个Replica还幸存,就选择其中一个作为leader否则,则任意选这个一个Replica作为leader
- 如果该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?相关推荐
- 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 ...
- kafka中AR、ISR、OSR以及HW、LEO的区别
kafka中AR.ISR.OSR以及HW.LEO的关系 Kafka 为分区引入了多副本 (Replica) 机制, 通过增加副本数量可以提升容灾能力.同一分区的不同副本中保存的是相同的消息(在同一时刻 ...
- Kafka 中 AR、ISR、OSR 是什么?ISR 的伸缩性什么?
相信大家已经对 kafka 的基本概念已经有一定的了解了,下面直接来分析一下 ISR 和 AR 的概念. 一.ISR and AR 简单来说,分区中的所有副本统称为 AR (Assigned Repl ...
- kafka中的ISR、AR又代表什么?ISR伸缩又是什么?
kafka中的ISR.AR又代表什么?ISR伸缩又是什么? 分区中的所有副本统称为AR(Assigned Repllicas).所有与leader副本保持一定程度同步的副本(包括Leader)组成 ...
- Kafka术语:AR、OSR、ISR、HW和LEO以及之间的关系
kafka 多副本 Kafka 为分区引入了多副本(Replica)机制,通过增加副本数量可以提升容灾能力.同一分区的不同副本中保存的是相同的消息(当然在同一时刻,副本之间可能并非完全一样),副本之间 ...
- kafka-4.进阶,ISR,OSR,AR,LW,HW,LEO,ACK原理理论
kafka 在zk里面可以看到kafka 谁拿到controller [zk: localhost:2181(CONNECTED) 6] get /kafka/controller {"ve ...
- kafka 中如何保证数据消息不丢失
背景 前几天,去两家公司面试,面试的过程中, 两家公司的面试官都给我提了如标题这样的一个问题.因为之前对kafka有一些了解,但是没有对这个的问题做过总结,现场就凭着记忆的进行了回答,面试官也表示这个 ...
- Kafka中topic的Partition,Kafka为什么这么快,Consumer的负载均衡及consumerGroup的概念(来自学习笔记)
1.1. Kafka中topic的Partition 在Kafka文件存储中,同一个topic下有多个不同partition,每个partition为一个目录,partiton命名规则为topic ...
- Kafka中的AR,ISR,OSR
在查看topic详细信息的话可以看到有个Isr,一开始不明所以,于是深入去学习了,不看不知道一看吓一跳: 首先要引出一个问题,为什么要存在这些东西: 在数据同步的时候,如果发生leader死掉,并且重 ...
最新文章
- 半导体基础知识(4):无源,有源和机电组件
- 大数据druid查询不支持分页_Druid实时大数据分析查询(六)
- IETF:QUIC Version 1 (RFC 9000) 作为标准化版本现已发布
- Java 中 10 大坑爹功能!
- 搞定ReentrantReadWriteLock 几道小小数学题就够了
- Java面向对象三大特征
- 高格虚拟服务器,网络相关 篇一:利用Windows自带的HyperV,安装高恪x86软路由
- 三层交换机/路由器OSPF配置详解【华为eNSP实验】
- mysql删除图书信息,图书管理系统(一):出版社列表增加、删除和编辑
- faker假数据php,php faker 伪造数据
- w ndows10支持微信吗,windows10系统怎样安装微信客户端
- RFID-MFRC522射频识别模块,S50卡M1
- CIKM 2021 | DISENKGAT:知识图谱解耦表征学习
- 【总结】Java 日期时间
- C# winForm 定时拷贝覆盖文件小工具
- python实现注册功能_python注册、登录,python注册登录,#1、实现注册功能#
- #JSP#Tomcat下使用JSP调用JavaBean显示ClassNotFoundException
- GB/T25915.1法规基本标准-附 录 B(资料性)等级划分计算
- 关于2021/12/17国内bing不能正常访问的解决方法。
- 开通小米公交卡服务器维护中是什么意思,小米公交卡应用指南,前2点必须注意,3分钟教会...