我正在学习kafka CLI。并有一个问题。 为什么我们在创建主题和使用消息时必须使用--zookeeper选项,但是在生成消息时,我们只使用--broker-list,它只是引用Kafka本身, 1.创建主题
./kafka-topics.sh --create --zookeeper `docker-machine ip bigdata` --replication-factor 1 --partitions 1 --topic bigdata
2.produce message
./kafka-console-producer.sh --broker-list `docker-machine ip bigdata`:9092 --topic bigdata
3.消费消息
./kafka-console-consumer.sh --zookeeper `docker-machine ip bigdata`:2181 --topic bigdata
我知道kafka必须使用zookeeper进行协调。但我仍然不能从CLI命令
中清楚地了解它答案 0 :(得分:3)
您必须区分主题管理和主题消费。 ZK不仅用于经纪人协调,还用于主题管理。
对于主题管理,ZK用于存储主题元数据,而代理(目前,Kafka 0.10.1
)不提供主题管理API。因此,管理CLI工具实际上直接与ZK(而不是代理)对话。当新的"管理客户端"完全实施(c.f。https://cwiki.apache.org/confluence/display/KAFKA/KIP-4+-+Command+line+and+centralized+administrative+operations)
对于主题消费,不需要ZK,消费者和生产者客户只与经纪人交谈。