**第1章 Kafka

  1. ISR:与leader保持同步的follower集合<br /> AR:分区的所有副本

  1. LEO:没个副本的最后条消息的offset<br /> HW:一个分区中所有副本最小的offset

  1. 每个分区内,每条消息都有一个offset,故只能保证分区内有序。

  1. 拦截器 -> 序列化器 -> 分区器

image.png

  1. 正确

  1. offset+1

image.png

  1. 先提交offset,后消费,有可能造成数据的重复

  1. 1)会在zookeeper中的/brokers/topics节点下创建一个新的topic节点,如:/brokers/topics/first<br /> 2)触发Controller的监听程序<br /> 3kafka Controller 负责topic的创建工作,并更新metadata cache

可以增加
bin/kafka-topics.sh —zookeeper localhost:2181/kafka —alter —topic topic-config —partitions 3

  1. 不可以减少,被删除的分区数据难以处理。

  1. __consumer_offsets,保存消费者offset

  1. 一个topic多个分区,一个消费者组多个消费者,故需要将分区分配个消费者(roundrobinrange)

  1. 每个分区对应一个文件夹,文件夹的命名为topic-0topic-1,内部为.log和.index文件

  1. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/626920/1583414563551-9321eb77-30d1-4a11-8f6f-734b657f52ff.png#align=left&display=inline&height=286&name=image.png&originHeight=286&originWidth=502&size=17760&status=done&style=none&width=502)

  1. 负责管理集群broker的上下线,所有topic的分区副本分配和leader选举等工作。

  1. partition leaderISR),controller(先到先得)

  1. 不能及时与leader同步,暂时踢出ISR,等其追上leader之后再重新加入

  1. 分区,顺序写磁盘,0-copy