当你使用kafka-topics.sh创建(删除)了一个topic之后,Kafka背后会执行什么逻辑?
1)会在zookeeper中的/brokers/topics节点下创建一个新的topic节点,如:/brokers/topics/first2)触发Controller的监听程序
3)kafka Controller 负责topic的创建工作,并更新metadata cache
对以上内容进行验证,首先启动zookeeper,查看
[zk: localhost:2181(CONNECTED) 3] ls /kafka/brokers/topics
[mingxing, test-ex1, test, pet, __consumer_offsets, __transaction_state]
接下来新建一个topic
kafka-topics.sh \
--zookeeper mypc01:2181,mypc02:2181,mypc03:2181/kafka \
--create \
--topic csdn \
--partitions 3 \
--replication-factor 3
再次查看,多了一个topic csdn. 就是说在zk的brokers节点下的topics节点下维护了这个信息.
[zk: localhost:2181(CONNECTED) 4] ls /kafka/brokers/topics
[test-ex1, test, csdn, __transaction_state, mingxing, pet, __consumer_offsets]