Kafka系列之:深入理解Kafka 主题、分区、副本、LEO、ISR、HW、Kafka的主写主读和分区leader选举
一、Kafka重要知识点提炼
- 副本指的是分布式系统对数据和服务提供的一种冗余方式。
- 数据副本是指在不同的节点上持久化同一份数据,当某一个节点上存储的数据丢失时,可以从副本上读取该数据,这是解决分布式系统数据丢失问题最有效的手段。
- 服务副本上指多个节点提供同样的服务,每个节点都有能力接收来自外部的请求并进行相应的处理。
介绍与副本相关的AR、ISR、HW和LEO的概念:
- 副本是相对分区而言的,即副本是特定分区的副本
- 一个分区位于不同的broker节点中,只有leader副本对外提供服务,follower副本只负责数据同步。
- 分区中的所有副本统称为AR,而ISR是指与leader副本保持同步状态的副本集合,当然leader副本本身也是这个集合中的一员。
- LEO标识每个分区中最后一条消息的下一个位置,分区的每个副本都有自己的LEO,ISR中最小的LEO即为HW,俗称高水位,消费者只能拉取到HW之前的消息。
从生产者发出的一条消息首先会被写入分区的leader副本,不过还需要等待ISR集合中的所有follower副本都同步完之后才能被认为已经提交,之后才会更新分区的HW,进而消费者可以消费到这条消息。