文章目录
- 引子
- 举例说明
引子
-
AR(Assigned Replication):
分区中的所有副本统称为AR(Assigned Replicas)
-
ISR(In-Sync Replicas):同步副本集合
ISR是指当前与主副本保持同步的副本集合。当主副本发生故障时,Kafka会从ISR中选举一个新的主副本来接管工作。因此,ISR的大小对于分区的可用性和性能至关重要。如果ISR太小,那么当主副本故障时,选举新的主副本可能会导致数据丢失或延迟;如果ISR太大,那么同步数据的成本会变得很高,影响分区的性能。
-
OSR(Out-of-Sync Replicas):异步副本集合
OSR是指当前与主副本不保持同步的副本集合。这些副本可能由于网络故障或其他原因而与主副本失去同步。OSR的存在不会影响分区的可用性和性能,但是如果OSR过大,那么可能会占用过多的磁盘空间和网络带宽。
-
HW(High Watermark):高水位
HW是指已经被所有副本复制的最高偏移量。当消费者从分区中读取消息时,它会记录当前已经读取到的偏移量,并将该偏移量作为下一次读取的起始位置。如果消费者读取到的偏移量小于HW,那么它只能读取到已经被所有副本复制的消息;如果消费者读取到的偏移量大于HW,那么它可能会读取到未被所有副本复制的消息。
-
LEO(Log End Offset):日志末尾偏移量
LEO是指分区中最后一条消息的偏移量。当生产者向分区中写入消息时,它会将该消息的偏移量记录在LEO中。消费者从分区中读取消息时,它可以通过LEO来判断是否已经读取了所有的消息。