在 Kafka 中无论是 producer 往 topic 中写数据, 还是 consumer 从 topic 中读数据, 都避免不了和 offset 打交道, 关于 offset 主要有以下几个概念。

  • Last Committed Offset:consumer group 最新一次 commit 的 offset,表示这个 group 已经把 Last Committed Offset 之前的数据都消费成功了。
  • Current Position:consumer group 当前消费数据的 offset,也就是说,Last Committed Offset 到 Current Position 之间的数据已经拉取成功,可能正在处理,但是还未 commit。
  • Log End Offset(LEO):记录底层日志 (log) 中的下一条消息的 offset。, 对 producer 来说,就是即将插入下一条消息的 offset。
  • High Watermark(HW):已经成功备份到其他 replicas 中的最新一条数据的 offset,也就是说 Log End Offset 与 High Watermark 之间的数据已经写入到该 partition 的 leader 中,但是还未完全备份到其他的 replicas 中,consumer 是无法消费这部分消息 (未提交消息)。

每个 Kafka 副本对象都有两个重要的属性:LEO 和 HW。注意是所有的副本,而不只是 leader 副本。关于这两者更详细解释,建议参考这篇文章

对于消费者而言,异步模式下 committed offset 是落后于 current position 的。如果 consumer 挂掉了, 那么下一次消费数据又只会从 committed offset 的位置拉取数据,就会导致数据被重复消费。

最新文章

  1. css absolute和float,relative,z-index的同异
  2. [Linux 性能检测工具]FREE
  3. spring3 mvc:方法返回值的学习
  4. 使用Machin公式计算
  5. 线段和矩形相交 POJ 1410
  6. 脱离Xcode,程序在模拟器中无法运行
  7. 汇编学习笔记(11)int指令和端口
  8. Reachability 检测网络状态
  9. 原生ajax详解
  10. PHP $_SERVER['HTTP_REFERER'] 获取前一页面的 URL 地址
  11. openvpn的搭建
  12. JavaScript设计模式之策略模式
  13. 实现简单的ssh功能
  14. C# 8.0的三个值得关注的新特性
  15. 【Android】异步加载布局探索
  16. druid + spring 事务 + removeAbandonedTimeout 超时回收导致的问题
  17. JavaWeb学习 (八)————HttpServletResponse对象(二)
  18. hdu 1686 Oulipo 【KMP】(计算模式串匹配的次数——与已匹配的字串可以有交集)
  19. springboot maven项目,为什么build成功,build path也没错误,project-->clean 也没用,项目上面还是有个红x呢?
  20. c#中partial 作用

热门文章

  1. java ASM
  2. Firefox 无法播放 youtube
  3. Maven简介(三)——profile介绍
  4. json文件 乱码问题 根本解决办法
  5. H5+asp.net 微信开发 遇到过的坑
  6. javascript原型深入解析2--Object和Function,先有鸡先有蛋
  7. Java自学-数字与字符串 字符
  8. Java自学-面向对象 类和对象
  9. Vue -- 项目报错整理(2):IE报错 - ‘SyntaxError:strict 模式下不允许一个属性有多个定义‘ ,基于vue element-ui页面跳转坑的解决
  10. AMD规范中模块id的命名规则