kafka中的offset概念
2024-10-10 22:24:12
在 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 的位置拉取数据,就会导致数据被重复消费。
最新文章
- css absolute和float,relative,z-index的同异
- [Linux 性能检测工具]FREE
- spring3 mvc:方法返回值的学习
- 使用Machin公式计算
- 线段和矩形相交 POJ 1410
- 脱离Xcode,程序在模拟器中无法运行
- 汇编学习笔记(11)int指令和端口
- Reachability 检测网络状态
- 原生ajax详解
- PHP $_SERVER['HTTP_REFERER'] 获取前一页面的 URL 地址
- openvpn的搭建
- JavaScript设计模式之策略模式
- 实现简单的ssh功能
- C# 8.0的三个值得关注的新特性
- 【Android】异步加载布局探索
- druid + spring 事务 + removeAbandonedTimeout 超时回收导致的问题
- JavaWeb学习 (八)————HttpServletResponse对象(二)
- hdu 1686 Oulipo 【KMP】(计算模式串匹配的次数——与已匹配的字串可以有交集)
- springboot maven项目,为什么build成功,build path也没错误,project-->;clean 也没用,项目上面还是有个红x呢?
- c#中partial 作用
热门文章
- java ASM
- Firefox 无法播放 youtube
- Maven简介(三)——profile介绍
- json文件 乱码问题 根本解决办法
- H5+asp.net 微信开发 遇到过的坑
- javascript原型深入解析2--Object和Function,先有鸡先有蛋
- Java自学-数字与字符串 字符
- Java自学-面向对象 类和对象
- Vue -- 项目报错整理(2):IE报错 - ‘SyntaxError:strict 模式下不允许一个属性有多个定义‘ ,基于vue element-ui页面跳转坑的解决
- AMD规范中模块id的命名规则