【Kafka系列】副本

162 阅读1分钟

副本,相对于分区而言,副本是特定分区的副本。

一个分区中包含一个或多个副本,其中一个为 leader 副本,其余为 follower 副本,各个副本位于不同的 broker 节点中。只有 leader 副本对外提供服务,follower 副本只负责数据同步。

  • AR(Assigned Repllicas):分区中所有副本的统称。
  • ISR(In-Sync Replicas):与 leader 副本保持同步状态的副本集合,包含 leader 副本。
  • LEO(Log End Offset):标识每个分区中最后一条消息的下一个位置,分区的每个副本都有自己的 LEO。
  • HW(High Watermak):ISR 中最小的 LEO 即为 HW,俗称“高水位”,消费者只能拉取到 HW 之前的消息。
  • LW(Low Watermark):AR 集合中最小的 logStartOffset 即为 LW,俗称“低水位”。
  • 失效副本:在ISR集合之外,处于同步失效或功能失效的副本统称为失效副本。
  • 同步失效分区:失效副本对应的分区,即 under-replicated 分区。

假设有一个分区有三个副本,其中一个是 leader 副本,另外两个则为 follower 副本,三个副本分别分布在三台不同的主机上。

image.png

其中,当所有副本都处于ISR中时,该分区的 HW 计算公式为

HW =  Min(LEO(leader), LEO(follower1), LEO(follower2))