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、ISR、OSR解析。
名词解释
ACKS(Acknowledgments)确认、回执
LW(Low watermark)低水位、LSO(Log start offset)起始偏移量
HW(High watermark)高水位
LEO(Log end offset)日志末尾偏移量
AR(Assigned replica)分配的副本
ISR(In sync replica)正常同步的副本
OSR(Out sync replica)非正常同步的副本
消息生产和消费流程
以单副本为例,生产者(Producer)包装消息指明Topic后消息到达Broker中的分区(Partition),此时数据在Broker服务程序中;Broker将数据写到内核缓存页(Page cache),此时数据在物理内存;最后按照配置的刷盘策略写到磁盘中的消息日志(Log)中。
刷盘频率如果太高,会影响服务性能;如果频率太低,Broker宕机,在内存中未写到磁盘的消息会丢失。所以需要在效率和数据完整性之前做权衡(Trade off)来配置合适的策略。
消费者(Consumer)与服务器建立连接向Broker发送拉取消息请求,请求信息先到达网卡再到达Broker;Broker通过系统调用sendfile将读取到缓存页中的数据直接拷贝到网卡中,也就是零拷贝技术,最终数据返回给消费者。消费者消费完后还需要主动向Broker提交请求来更新消费进度。
ACKS三种类型
生产者(Producer)向Broker发送消息时,可以配置等待确认ACKS(Acknowledgments)的策略0、1和-1。
0代表不等待Broker确认,在这种情况下,不能保证服务器已经收到了记录。
-1和1都需要等待Broker返回确认。
1代表这个确认是Broker将消息写到主(Leader)磁盘后返回,不用等待从(Follower)同步。
-1则代表应答需要等待所有正常同步的副本ISR(In sync replica)写到消息日志(Log)后才会返回。
AR、ISR、OSR
AR(Assigned replica)已分配的副本指主题(Topic)创建时设置的副本,所有副本包括主(Leader)和从(Follower)都归属AR。
ISR(In sync replica)正常同步的副本和OSR(Out sync replica)非正常同步的副本是指从副本的两种状态,有周期性任务将副本按这个状态进行进行划分。
判断条件有两个:(1)根据从和主同步的超时时间判断,配置参数rerplica.lag.time.max.ms=10000;(2)根据从与主消息条数差值盘,配置参数rerplica.lag.max.messages=4000。
AR = ISR + OSR
ISR机制
在ACKS策略配置为-1的时候,需要等待所有ISR(In sync replica)集合中的副本将消息写入消息日志(Log)后才会给生产者(Producer)返回确认。以3个副本(Replica)为例,开始是都是正常同步,此时ISR集合中副本为3个。在同步消息[4]的时候Broker2上的副本出现网络问题或者宕机超过设置的超时时间,周期任务扫描到后将其划分到了OSR(Out sync replica)集合,给与了生产者确认。后续消息确认不再等待这个副本。
当OSR集合中的副本恢复并与主副本同步数据追平后,又会被周期任务扫描划分回ISR集合中。
LSO、LEO、LW、HW
LEO(Log end offset)日志末尾偏移量是新消息写入时将分配的偏移量(Offset)值,从0开始,随着消息不断写入递增。
LW(Low watermark)低水位,代表AR(Assigned replica)集合中最小的LSO(Log start offset)起始偏移量。旧日志的清理和消息删除都有可能促使LW的增长。
HW(High watermark)高水位代表ISR(In sync replica)集合中最小的LEO。
比如当ACKS(Acknowledgments)配置为1时,不需要等待从(Follower)就会给生产者(Producer)返回确认,这就可能会导致从还没来得急同步。此时ISR集合中最小的LEO没有变化,就代表HW不变,消费者还无法消费到新的数据。
消费者能消费的数据 = [LW,HW)
Kafka中ACKS LSO LEO LW HW AR ISR OSR解析相关推荐
- 关于kafka中acks是否可以为all
kafka源码中有这样一段代码: org.apache.kafka.clients.producer.KafkaProducer private static int parseAcks(String ...
- kafka中AR、ISR、OSR以及HW、LEO的区别
kafka中AR.ISR.OSR以及HW.LEO的关系 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术语:AR、OSR、ISR、HW和LEO以及之间的关系
kafka 多副本 Kafka 为分区引入了多副本(Replica)机制,通过增加副本数量可以提升容灾能力.同一分区的不同副本中保存的是相同的消息(当然在同一时刻,副本之间可能并非完全一样),副本之间 ...
- kafka中的ISR、AR又代表什么?ISR伸缩又是什么?
kafka中的ISR.AR又代表什么?ISR伸缩又是什么? 分区中的所有副本统称为AR(Assigned Repllicas).所有与leader副本保持一定程度同步的副本(包括Leader)组成 ...
- kafka中leader和follower、AR、ISR、OSR、Controller的选举、为什么不能通过ZK的方式来选举partition的leader?
leader和follower 在Kafka中,每个topic都可以配置多个分区以及多个副本.每个分区都有一个leader以及0个或者多个follower,在创建topic时,Kafka会将每个分区的 ...
- Kafka 中 AR、ISR、OSR 是什么?ISR 的伸缩性什么?
相信大家已经对 kafka 的基本概念已经有一定的了解了,下面直接来分析一下 ISR 和 AR 的概念. 一.ISR and AR 简单来说,分区中的所有副本统称为 AR (Assigned Repl ...
- Kafka科普系列 | 什么是LW和logStartOffset?
欢迎跳转到本文的原文链接:https://honeypps.com/mq/kafka-basic-knowledge-of-lw-and-logstartoffset/ 很多读者对 Kafka 中的 ...
- kafka 中如何保证数据消息不丢失
背景 前几天,去两家公司面试,面试的过程中, 两家公司的面试官都给我提了如标题这样的一个问题.因为之前对kafka有一些了解,但是没有对这个的问题做过总结,现场就凭着记忆的进行了回答,面试官也表示这个 ...
最新文章
- 如何利用CIC滤波器、CIC补偿滤波器和半带滤波器设计一个高频数字抽取滤波器
- 爬虫架构师得逆袭之路
- MySQL视图的使用
- Hive ETL 优化(参数篇)
- jQuery原理第三天
- .Net MVC 自定义Action类型,XmlAction,ImageAction等
- IBM Machine Learning学习笔记——Time Series and Survival Analysis
- android智能电视直播源抓取教程,求人不如求己,教你自己抓取直播源的方法!...
- 最新QQ空间免费导航代码
- win10卸载软件通过控制面板
- 笔记本win10 睡眠时会自动唤醒?修复后唤醒缓慢也解决了
- Unity 一起看+弹幕 Socket通信
- gate simulation
- 归并排序java_Java经典排序算法之归并排序详解
- 最浅显易懂kerberos认证和黄金白银票据
- 腾讯云轻量应用服务器网站搭建基础教程简单易学
- 睿频开启及睿频与超频的区别
- java 雷达图_Java 创建Excel雷达图
- js基础1 输入输出方式 数据类型
- 机器学习与网络信贷那些事