kafka--基础知识点--6.4--LSO

个人理解,可能有误,仅供参考

LSO: LastStableOffset,分区中第一个未完成事务的起始偏移量,或如果没有未完成事务则为HW。

LSO <= HW <= LEO

LSO起作用必须满足以下所有条件:

  • 同一个分区多个生产者也可以只有一个中必须至少有一个是事务生产者;
  • 该分区的消费者isolation.level 参数值必须为read_committed

在 isolation.level=read_committed 模式下:

  • 消费者只能读取到 LSO 之前的消息
  • 如果事务未提交,LSO 会停留在第一个未提交事务的起始偏移量
  • 这意味着LSO 之后的所有消息(无论事务/非事务)都无法被读取
  • 直到生产者事务提交事务,消费者才能继续消费后边的消息

示例:

有两个生产者将消息发往同一分区,一个是事务生产者,一个是非事务生产者;该分区的消费者设置参数isolation.level=read_committed。分区接收到两个生产者消息的顺序可能如下:

text 复制代码
# 事务提交前
偏移量: 0   1   2   3   4
消息:   A   B   C   D   E
状态:   ✓   ✗   ✓   ✗   ✓   # ✓=非事务 ✗=事务消息(未提交)
HW: 5  # 所有消息都已复制到ISR
LSO: 1  # 第一个未提交事务在偏移量1

消费者可见: 只有偏移量0的消息A
消费者被阻塞在偏移量1,无法读取1-4的任何消息

# 事务提交后
LSO: 5  # 事务提交后,LSO推进到HW

消费者可见: 消息A, B, C, D, E全部可见
相关推荐
这个DBA有点耶12 小时前
从症状到根因:数据库监控指标的分层方法与静态/动态阈值策略
数据库·mysql·代码规范
SelectDB12 小时前
时间旅行与快照能力速查:Doris 侧三条落地路径
大数据·数据库·数据分析
SelectDB12 小时前
云数仓成本结构拆解速查:五层计费 vs Doris / 托管形态
大数据·数据库·数据分析
SelectDB12 小时前
什么场景能承接与建议保留:Doris vs Snowflake 边界速查
大数据·数据库·数据分析
这个DBA有点耶14 小时前
DELETE没删多少数据,表却越来越大——InnoDB删除空洞与页合并失效的根因
数据库·mysql·代码规范
ly768917 小时前
PostgreSQL 备份恢复策略:pg_basebackup、WAL 归档与 PITR 在企业 Java 系统中的落地
java·数据库·postgresql·pitr·pg_basebackup·wal 归档
小羊没烦恼!18 小时前
Ajax与JSON的一些总结
android·java·前端·数据库·mysql·算法·okhttp
注塑机数据采集联网18 小时前
如何解决注塑机数据采集联网对接MES系统数据WiFi传输数据不稳问题
大数据·数据库·物联网·数据挖掘·数据分析
黄俊懿18 小时前
【架构师从入门到进阶】第六章:服务集群优化——第八节:线程数公式
java·服务器·数据库·分布式·性能优化·架构·系统架构