Kafka 高水位(High Watermark, HW)与 Leader Epoch 的作用
1. 高水位(High Watermark, HW)的作用
高水位是 Kafka 中用于控制消息可见性和副本同步的核心机制。其核心作用包括:
-
消息可见性控制
- 消费者只能读取 高水位以下的消息(已提交的消息)。
- 高水位以上的消息未被所有副本同步,属于未提交状态,消费者无法读取,避免读取到可能丢失的数据。
-
副本同步的标尺
- 高水位是 Kafka 副本同步的边界。只有当 Follower 副本的 LEO(Log End Offset,日志末尾偏移量)达到 Leader 的高水位时,副本才被认为是同步的(In-Sync Replica, ISR)。
- 高水位由 Leader 的 ISR 中最小的 LEO 决定,确保所有 ISR 副本都同步到该位置。
-
数据可靠性保障
- 通过高水位机制,Kafka 保证消费者不会读取到可能因副本故障而丢失的消息。例如,如果 Leader 副本宕机,新 Leader 只能从 ISR 中选举,确保数据不会丢失。
2. 高水位的缺陷
尽管高水位机制解决了基本的数据一致性问题,但在某些场景下仍存在风险:
-
数据丢失的典型案例

最低0.47元/天 解锁文章
1912

被折叠的 条评论
为什么被折叠?



