Kafka的高水位、低水位是什么概念?

Kafka 的 高水位(High Watermark, HW) 和 低水位(Low Watermark, LW) 是和数据存储、消费进度、日志清理等密切相关的重要概念。我们用一个 "蓄水池" 的比喻来形象地解释它们的作用。


1. Kafka 里的数据像一个蓄水池

Kafka 的数据存储在 日志(log segment) 里,每个分区(partition)就像一个不断增长的日志文件,数据会随着生产者(producer)的发送不断增加,消费者(consumer)从中读取数据。你可以把它想象成一个 不断注水的蓄水池。


2. 高水位(HW):消费安全线

高水位(HW) 就像是蓄水池里的 "最低可见水位" ,只有水面之下的水(数据)才是消费者能喝(消费)到的。

  • Kafka 是分布式的,每个分区的消息可能被多个副本(replica)存储在不同的机器上。
  • 只有当 所有 ISR(In-Sync Replicas,即同步副本)都确认收到了某个消息,这个消息才被认为是"稳定的"并可以被消费者消费。
  • 高水位(HW)指的就是最早的 ISR 共同确认的那条消息的偏移量(offset),消费者只能消费到这个位置的数据,再往后的数据还不能保证稳定,不能消费。

类比:

  • 你可以想象蓄水池里有一根透明的管子,管子以下的水可以喝(已经被多个副本确认)。
  • 但管子上面的水(新写入但未完全确认的消息)还在"沉淀"过程中,可能会被回滚(删除)。

作用:

  • 保证数据一致性,确保所有消费者只能消费已经被多个副本确认的数据,避免数据丢失。

3. 低水位(LW):清理水池底部的陈旧数据

低水位(LW) 就是 "蓄水池的排水口" ,用来删除过旧的数据,防止池子被塞满。

Kafka 会根据 日志清理策略(Log Retention Policy) 来删除旧数据,比如:

  • 按时间删除(log.retention.hours):只保留最近 X 小时的数据。
  • 按大小删除(log.retention.bytes):当日志文件超过一定大小后,删除最早的数据。

低水位(LW)指的就是最早还能被 Kafka 保留的偏移量(offset),更早的数据都会被清理掉,防止日志无限增长。

类比:

  • 如果池子太满,底部的水就要排走,以腾出空间给新的水(数据)。
  • 低水位(LW)以下的数据(offset)会被 Kafka 自动清理,消费者也无法再读取这些数据。

作用:

  • 避免日志文件无限增长,节省存储空间。
  • 提高 Kafka 性能,防止查询过大数据时变慢。

4. 高水位和低水位的关系

  • 高水位(HW)不断上升,确保数据可以安全消费。
  • 低水位(LW)也在上升,确保老数据及时清理。
  • 高水位 - 低水位之间的数据就是 Kafka 当前可消费的数据,消费者只能消费这个范围的数据。

5. 总结

概念 作用 类比
高水位(HW) 保障消费者只能消费到安全的数据 透明管子以下的水,可安全饮用
低水位(LW) 触发日志清理,避免存储爆炸 水池排水口,定期排掉老水

6. 延伸思考

  • 如果 ISR 副本少了(比如机器故障),高水位就不会提升,导致消费者无法消费新数据。
  • 如果低水位设得太低,可能会让消费者还没消费就被删数据,导致数据丢失。
  • Kafka 通过合理调整 log.retention.* 和副本同步策略,来平衡存储和消费的可靠性。

这样理解的话,Kafka 高低水位的原理是不是就清晰很多了?

相关推荐
starzy19902 分钟前
Kafka写数据入口:消息进了Broker之后交给谁
大数据·kafka
长空任鸟飞_阿康1 小时前
如何设计支持 Skills 的 Agent?一套可扩展的四层架构
python·ai·架构·skills
螺蛳粉 螺蛳粉2 小时前
CDH第七篇:CDH 集成 Kafka 实战:CSD + Parcel 组合拳,先装 ZooKeeper 是铁律
物联网·zookeeper·kafka·消息队列·parcel·cdh集成·csd
得助智能-垂类大模型2 小时前
2026大模型知识库选型指南:多模态RAG、知识抽取与智能协同工程架构
架构
海宇AI2 小时前
零信任架构实战:基于海宇学籍核验三要素构建自动化文旅景区学生票核验网关
大数据·人工智能·架构·自动化
ShuangNaoPai3 小时前
失效检测与原型匹配:基于双脑派于华的高尔夫案例,重构AI内容生成策略
人工智能·架构·产品运营·prompt
瓶瓶持续学习中4 小时前
空间智能与物理AI:国内厂商如何与英伟达协同发展
大数据·人工智能·信息可视化·架构
每天一道题4 小时前
分布式锁真的安全吗?从 Redis 锁、Lease 到 Fencing Token
redis·分布式·安全
天远Date Lab4 小时前
零信任架构实战:基于天远企业股权变更构建自动化招投标供应商股东穿透审查网关
java·人工智能·架构·自动化
GOWIN革文品牌咨询4 小时前
B2B圆桌内容化:问题链、记录与授权工作流
大数据·架构