先说结论:kafka的消息滞后(Lag)是指已消费的偏移量(ConsumerOffset)与水位线(HW)之间的消息差,并非分区(partition)中已消费的偏移量(ConsumerOffset)与当前分区的最高日志位移(LOG-END-OFFSET简称LEO)之间的差,也就是说,并不是生产者所见的offset与已消费的offset的差。

一方面,对kafka来说,HW是其备份和恢复的关键,kafka是根据HW来判断数据是否丢失和恢复数据,而HW与LEO之间的数据有可能会丢失,因此这部分未同步的数据实际上相当于是无效数据,这部分数据实际只对生产者有意义(已经产出的意义,生产者可以通过kafka ack的设置,记录产出的数据位置,以帮助恢复HW与LEO之间的数据,恢复方法也只是重新生产这部分数据,如果无法重新生产,则数据丢失)。

另一方面,leader收到消息更新自己的LEO,follower从再从leader处同步消息,这个时间差决定了leader和follower之间存在消息差,同时也决定了HW和各个partiton的LEO之间存在的消息差,消费者在消费消息时对LEO是无察觉的,HW决定了消费者能消费到的最大offset,而LEO仅由kafka管理。因此对消费者来说,LEO也是无意义的。

在kafka有查看消费组详情的命令:kafka-consumer-groups.sh --bootstrap-server ip:port --group groupid --describe,通过这个命令可以根据groupid查看LAG、CURRENT-OFFSET、LOG-END-OFFSET等信息,LAG是消息滞后量,CURRENT-OFFSET是指已消费的偏移量(ConsumerOffset),而此处LOG-END-OFFSET却不是partition最高日志位移LEO,而是水位线HW!!!LAG即是HW与已消费的偏移量(ConsumerOffset)的差!!!

Kafka坑之一:Lag与HW、LEO相关推荐

  1. 图解kafka中hw,leo,isr

    原创不易,转载请注明出处 文章目录 前言 1.hw leo isr的介绍 2.图解hw leo isr 变化 总结 前言 本文主要是介绍下kafka broker 中的hw leo isr分别是啥,然 ...

  2. 【kafka】kafka consumer offset lag获取的三者方式

    1.概述 本文主要讨论一下kafka consumer offset lag的监控 方案 利用官方的类库 ConsumerOffsetChecker ConsumerGroupCommand 利用官方 ...

  3. 聊聊kafka consumer offset lag increase异常

    序 本文主要解析一下遇到的一个kafka consumer offset lag不断增大的异常. 查看consumer消费情况 Group Topic Pid Offset logSize Lag O ...

  4. java 获取kafka lag,聊聊kafka consumer offset lag的监控

    序 本文主要讨论一下kafka consumer offset lag的监控 方案 利用官方的类库 ConsumerOffsetChecker ConsumerGroupCommand 利用官方的JM ...

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

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

  6. Kafka坑 - Couldn't find leaders for Set(kafka重启)

    SparkStreaming程序从Kafka读数据的程序运行期间报了如下异常: org.apache.spark.SparkException: ArrayBuffer(org.apache.spar ...

  7. kafka 同步提交 异步_腾讯游戏工程师分享:简单理解 Kafka 的消息可靠性策略

    作者:hymanzhang,腾讯 IEG 运营开发工程师 背景 部门的开发同学最近在开发一个活动的过程中,需要关注大量的应用后台逻辑,捕捉各种事件的触发.在设计时打算采用 kafka 消息队列进行业务 ...

  8. 简单理解 Kafka 的消息可靠性策略

    作者:hymanzhang,腾讯 IEG 运营开发工程师 背景 部门的开发同学最近在开发一个活动的过程中,需要关注大量的应用后台逻辑,捕捉各种事件的触发.在设计时打算采用 kafka 消息队列进行业务 ...

  9. 吐血整理50家企业真实大数据面试题!!学长实测,真实面试!!快收藏!

    文章目录 前言 京东面试题 58面试题 新浪面试题 搜狐面试题 360面试题 小米面试题 顺丰面试题 OPPO面试题 VIVO面试题 华为面试题 boss直聘面试题 搜狗金融面试题 瓜子二手车面试题 ...

最新文章

  1. 基于Ubuntu交叉编译FFmpeg Windows SDK
  2. 凤舞天博客中的一些好的见解
  3. 调试linux内核前的多虚拟机网络配置(图文教程)
  4. 分分合合分分,谷歌医疗走向大败退
  5. 09年03月27日--request 之 getParameterMap
  6. HDLBits答案(6)_硬件模块设计的思考方式
  7. FreeMarker三宗罪!
  8. 鸿蒙os系统越来越少了,鸿蒙系统怎么它的消息越来越少了?是不是不会上线手机了?...
  9. c++list遍历_小白学PyTorch | 6 模型的构建访问遍历存储(附代码)
  10. 详解文本分类之DeepCNN的理论与实践
  11. 极光推送源码api封装改造
  12. 2020软件设计师考试大纲
  13. 拉格朗日乘数法(Lagrange multiplier)
  14. 《像三国》3D动效制作经验分享
  15. item_search_img - 按图搜索淘宝商品(拍立淘)
  16. 深入浅出PA和LNA
  17. 什么是框架?常用框架有哪些?
  18. VS 2017 OCX
  19. 批处理 窗口最小化 java_如何让批处理程序启动的时候最小化
  20. 计算机主板可以随意更换硬件吗,电脑主板可以随便换么?每日一答

热门文章

  1. 薅羊毛专业版第三十四次更新
  2. 在智能全栈开发板(dc-01)碰到的问题及解决方法(stm32,ST-LINK,windows操作系统)
  3. wps word文档复制图片显示不全,只显示一行
  4. 记一次神奇的CVPR 2021 Rebuttal 经历
  5. power automate功能概述与学习实践(Microsoft Flow)
  6. idea2019版本有效激活码error问题
  7. 真正的IT技术男是什么样的?
  8. windows10 安装
  9. 明天帮人拍照---婚礼摄影备课[zt]
  10. java.lang.IllegalArgumentException: MALFORMED