在 Apache Kafka 中,LEO、LSO、AR、ISR 和 HW 是与消息存储和复制相关的重要概念:
-
LEO (Log End Offset):
- 表示每个分区中最新一条已写入的消息的偏移量(offset),即当前日志尾部的位置。
-
LSO (Log Start Offset):
- 在较早版本的 Kafka 文档或资料中提到的 LSO 通常指的是 Log Start Offset。但在最新的 Kafka 文档中并没有明确提到 LSO 这个术语。如果存在 LSO 的定义,它可能表示一个分区日志中最旧消息的偏移量,即该分区日志的起始位置。
-
AR (Assigned Replicas):
- 分区的所有副本集合,这些副本被分配来存储特定主题分区的数据。当创建主题时,会根据配置的副本因子决定 AR 的数量。
-
ISR (In-Sync Replicas):
- 同步副本集,是分区所有副本的一个子集,它们包含所有与 Leader 副本保持完全同步的副本。Leader 副本会在 ISR 集合中的副本上写入数据,并且只有 ISR 集合中的副本才有资格成为新的 Leader。
-
HW (High Watermark):
- 高水位标记,对于消费者而言,它是可以安全消费的最小偏移量,代表了已经提交到所有 ISR 副本并且不会丢失的消息的最大偏移量。一旦消息被写入并复制到 ISR 中的所有副本,其对应的偏移量就会被考虑进 HW 的计算。这意味着消费者只能读取 HW 之前的消息,确保消息至少被持久化了一次。