回顾一下kafka相关的概念:
Kafka Broker新建Topic的大致流程
- Kafka Topic Client发出创建Topic请求,到Zookeeper两个配置路径:/config/topics/[topic]和/brokers/topics/[topic]
- KafkaController 在 ZooKeeper 的 /brokers/topics 节点上注册 watcher,当 topic 被创建,则 TopicChangeListener执行监听。
- KafkaController读取/brokers/topics读取,创建Topic主要是分区的创建,只要分区创建成功了,那么Topic也创建成功了。
- Topic分区创建之后,会涉及到分区状态和副本状态的转化,set AR(副本)和设置一个副本成为ISR中的Leader
- 回写上面的分区状态和ISR中Leader状态到/brokers/topics/[topic]/partitions/[partition]/state
- 通过RPC 向相关的 broker 发送 LeaderAndISRRequest,主要是同步Partition状态,Leader,ISR信息。
Kafka的Broker删除Topic的大致流程