1、Kafka创建topic命令很简单,一条命令足矣:bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-f锾攒揉敫actor 3 --partitions 3 --topic test 。
2、这条命令会创建一个名为test的topic,有3个分区,每个分区需分配3个副本。
3、topic创建主要分为两个部分:命令行部分+后台(controller)逻辑部分。
4、主要的思想就是后台逻辑会监听zookeeper下对应的目录节点,一旦发起topic创建命令,该命令会创建新的数据节点从而触发后台的创建逻辑。
5、确定分区副本的分配方案(就是每稍僚敉视个分区的副本都分配到哪些broker上);创建zookeeper节点,把这个方案写入/brokers/topics/<topic>节点下。
6、Kafka controller部分主要做下面这些事情:1. 创建分区;2. 创建副本;3. 为每个分区选举leader、ISR;4.更新各种缓存。