kafka通过多副本架构来保证数据的稳定性,这就必然会产生数据同步滞后的问题,因此保证数据一致性是一个关键因素。kafka通过连通器原理(注:连通器原理并非官方用词,是作者本人阅读时觉得和物理学的连通器原理比较相似,所以自行命名为连通器原理)的模式来保证数据的一致性。
- 副本:即存储在broker中的消息数据。包括leader副本和flower副本,其中leader副本只有一份,flower副本有n份
- AR:分区中所有的副本统称为AR(Assigned Replicas)。 AR = ISR+OSR
- ISR:所有与leader副本保持一致的副本称为ISR(In Sync Replicas)。ISR与AR保持一致只是相对的,所有副本与leader副本必然存在滞后,我们将可接受的滞后范围当作完全一致。(滞后时长可以通过参数配置)
- OSR:所有与leader副本存在滞后的副本,称之为OSR(Out of Sync Replicas)
- HW:高水位,消费者可以拉取的最新的消息。标识了所有副本均已完成同步的最小消息位
- LEO:当前副本存储的消息位。每个副本都唯一一个自己的LEO,所有副本集中LEO最小的即为HW。