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全部可见
相关推荐
全栈前端老曹7 分钟前
【MongoDB】Node.js 集成 —— Mongoose ORM、Schema 设计、Model 操作
前端·javascript·数据库·mongodb·node.js·nosql·全栈
神梦流21 分钟前
ops-math 算子库的扩展能力:高精度与复数运算的硬件映射策略
服务器·数据库
lucky670723 分钟前
Spring Boot集成Kafka:最佳实践与详细指南
spring boot·kafka·linq
让学习成为一种生活方式29 分钟前
trf v4.09.1 安装与使用--生信工具42-version2
数据库
Coder_Boy_30 分钟前
基于Spring AI的分布式在线考试系统-事件处理架构实现方案
人工智能·spring boot·分布式·spring
啦啦啦_999940 分钟前
Redis-5-doFormatAsync()方法
数据库·redis·c#
生产队队长1 小时前
Redis:Windows环境安装Redis,并将 Redis 进程注册为服务
数据库·redis·缓存
老邓计算机毕设1 小时前
SSM找学互助系统52568(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·javaweb 毕业设计
痴儿哈哈1 小时前
自动化机器学习(AutoML)库TPOT使用指南
jvm·数据库·python
Σίσυφος19001 小时前
PCL法向量估计 之 方向约束法向量(Orientation Guided Normal)
数据库