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全部可见
相关推荐
500841 小时前
昇腾 CANN 的五层架构,到底分了哪五层
java·人工智能·分布式·架构·ocr·wpf
我爱cope2 小时前
【Agent智能体4 | 智能体AI的应用】
数据库·人工智能·职场和发展
song5012 小时前
Ascend C 算子开发:从入门到上手
c语言·开发语言·图像处理·人工智能·分布式·flutter·交互
小钻风33663 小时前
ZooKeeper + Kafka 集群搭建实战记录
分布式·zookeeper·kafka
知识分享小能手3 小时前
Flask入门学习教程,从入门到精通,数据库操作 — 知识点详解与案例代码(4)
数据库·学习·flask
我是一颗柠檬3 小时前
【MySQL全面教学】MySQL基础SQL语句Day3(2026年)
数据库·后端·sql·mysql·oracle
XS0301063 小时前
MyBatis动态SQL
数据库·sql·mybatis
MandalaO_O4 小时前
MyBatis 与 MySQL 执行流程
数据库·mysql·mybatis
l1t5 小时前
DeepSeek总结的将 Rust Delta Kernel 集成到 ClickHouse
数据库·clickhouse·rust
qq_283720055 小时前
万字深度:Chroma 向量数据库全解析 — 核心原理、实战操作、性能优化与工程最佳实践
数据库·性能优化