kafka中AR、ISR、OSR以及HW、LEO的区别
kafka中AR、ISR、OSR以及HW、LEO的关系
Kafka 为分区引入了多副本 (Replica) 机制, 通过增加副本数量可以提升容灾能力。同一分区的不同副本中保存的是相同的消息(在同一时刻,副本之间并非完全一样)
副本之间是 “一主多从”的关系,其中leader 副本负处理读写请求 ,follower 副本只负责与 leader 副本的消息同步。副本处于不同的 broker ,当 leader 副本出现故障时,从 follower 副本中重新选举新的 leader 本对外提供服务。 Kafka 通过多副本机制实现了故障的自动转移,当 Kafka 集群中某个 broker失效时仍然能保证服务可用
AR、ISR、OSR
在Kafka中,生产者和消费者只与leader 副本进行交互,而 follow 副本只负责消息的同步,很多时候 follower 副本中的消息相对 leader 副本而言会有一定的滞后。根据同步情况的不同,kafka将副本分为了以下几种集合:
AR ( Assigned Replicas ):分区中的所有副本统称为 AR
ISR(On-Sync Replicas):所有与 leader 副本保持一定程度同步的副本(包括 leader 副本在内〕组成 ISR
OSR (Out-of-Sync Replicas ):与 leader 副本同步滞后过多的副本(不包 leader 副本)组成
AR = ISR + OSR,默认情况下,当leader副本发生故障时,只有ISR集合中的副本才有资格被选举为新的leader
在正常情况下, follower 副本都应该与 leader 副本保持一定程度的同步,即 AR=ISR,,OSR 集合为空。
ISR 与 OSR并不是固定的:
- leader 副本负责维护和跟踪 ISR 集合中所有 follower 的滞后状态, follower 副本落后太多或失效时, leader 副本会把它从 ISR 集合中剔除
- 如果 OSR 集合中有 follower 副本 ”追上“ leader 副本,那么 leader 副本它从 OSR 集合转移至 ISR 集合
HW、LEO
另外,ISR 与 HW 和 LEO 有着紧密的关系。
HW:HW是 High Watermark 的缩写,俗称高水位,它标识了一个特定的消息偏移量( offset ),消费者只能拉取到这个 offset 之前的消息。
如下图所示,消费者只能消费0~5号偏移量的数据
- LEO:LEO是 Log End Offset 缩写,它标识当前日志文件中下一条待写入消息 offset,如上图的日志中已经写了0~8号数据,那么offset为9的位置即为当前日志文件的LEO。
通过ISR、HW权衡数据可靠性和性能之间的关系
下面通过一个例子来具体感受一下这种 ISR 集合的:
假设现在某个分区的ISR中有3个副本,那么HW和LEO都为3(即只能消费3之前的消息),现在消息3和消息4从生产者发出后被存入leader副本
消息写入后,follower副本会拉取消息进行消息同步
在某个时刻,可能只有follower1同步成功,follower2只同步消息3还未同步消息4。那么此时的HW就为4,LEO就为5。此时消费者可以消费到offset为 0 至 3 之间的数据
所有副本同步成功后,HW和LEO都变为5,此时消费者就可以消费到 offset 为4的消息了
总结:Kafka通过这种 ISR 的方式有效的权衡了数据可靠性和性能之间的关系。
本文参考:《深入理解Kafka核心设计与实践原理》
kafka中AR、ISR、OSR以及HW、LEO的区别相关推荐
- 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 是什么?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中leader和follower、AR、ISR、OSR、Controller的选举、为什么不能通过ZK的方式来选举partition的leader?
leader和follower 在Kafka中,每个topic都可以配置多个分区以及多个副本.每个分区都有一个leader以及0个或者多个follower,在创建topic时,Kafka会将每个分区的 ...
- kafka 中如何保证数据消息不丢失
背景 前几天,去两家公司面试,面试的过程中, 两家公司的面试官都给我提了如标题这样的一个问题.因为之前对kafka有一些了解,但是没有对这个的问题做过总结,现场就凭着记忆的进行了回答,面试官也表示这个 ...
- 图解kafka中hw,leo,isr
原创不易,转载请注明出处 文章目录 前言 1.hw leo isr的介绍 2.图解hw leo isr 变化 总结 前言 本文主要是介绍下kafka broker 中的hw leo isr分别是啥,然 ...
- Kafka中的AR,ISR,OSR
在查看topic详细信息的话可以看到有个Isr,一开始不明所以,于是深入去学习了,不看不知道一看吓一跳: 首先要引出一个问题,为什么要存在这些东西: 在数据同步的时候,如果发生leader死掉,并且重 ...
最新文章
- android下载源代码
- JAVA黑白圆圈图形_CSS3 黑白交替旋转圆圈
- UITableView的动态获取高度 排版
- POJ 2724 Purifying Machine (二分图匹配)
- 全国计算机等级考试题库二级C操作题100套(第13套)
- 网站后端_Python+Flask.0007.FLASK构造跳转之301跳转与302重定向?
- 前端html面试题及答案2019,前端面试题及答案2019-20210415034948.docx-原创力文档
- python画简便的图-python的pyecharts绘制各种图表详细(附代码)
- ps 毛发 边缘_【常用抠图小技巧】PS调整边缘扣毛发
- Ubuntu 中文目录改为英文目录
- 计算机字节换算在线,计算机字节换算(计算机字节换算器)
- 如何打开.chm文件
- gensim w2v 使用记录
- eclipse开发首选项
- msp430发送pwm信号_msp430TAx PWM输出详解
- JavaScript对输入的用户名密码等进行判断
- Delphi访问网络共享文件夹
- 2022年资料员-岗位技能(资料员)操作证考试题模拟考试平台操作
- android实现从耳机和自带麦克风,android插上耳机的时候仍然使用机身的麦克风录音,解决!...
- ios微信双开,iOS微信分身免越狱方法来了!
热门文章
- JAVA--GUI:MenuBar组件
- 用for循环嵌套实现使用 “ * ” 打印直角三角形。
- 解决使用element-ui级联选择框内容空白且下拉框过高
- 【Linux】《Linux命令行与shell脚本编程大全 (第4版) 》笔记-Chapter16-脚本控制
- 为什么要写博客?写博客有哪些好处?
- Python-入门学习
- SpringCloud项目无法读取bootstrap.yml配置文件的解决办法
- Java实现ES增删改查
- 【转载】ARPU ARPPU傻傻分不清楚?手游收入指标名词解释
- 企业ERP管理软件有哪些?哪个好