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全部可见
相关推荐
Zhu75810 分钟前
部署安全的pg数据库,搭配pgadmin实现web界面管理
前端·数据库·安全
她说..26 分钟前
Redis项目实战整理
数据库·redis·缓存
kyrie_sakura36 分钟前
MySQL数据库学习笔记1 -- 基础概念,sql语句
数据库·学习·mysql
凌云若寒38 分钟前
CODESOFT试用流程
linux·运维·网络·数据库·sentinel
云贝贝贝1 小时前
Oracle 运维高频 6 坑:硬日期、AUTOEXTEND、闪回、锁、FRA、双引号
运维·数据库·oracle
九月要晚安1 小时前
从数据库到湖库一体
数据库
正在走向自律1 小时前
FastGPT高并发登录故障根治方案:50人并发报错、PostgreSQL、MongoDB数据库深度优化手册
数据库·mongodb·postgresql
姜穆澜1 小时前
时空数据处理全攻略
数据库
OceanBase数据库官方博客1 小时前
深度拆解seekdb:AI Native Database 的技术架构与核心能力
数据库·人工智能·架构
爱吃鱼的喵️1 小时前
云数据库怎么选?主流云厂商横向对比与选型指南
数据库·阿里云·云计算