关系动物园管理员和卡夫卡

时间:2016-12-12 17:42:38

标签: apache-kafka apache-zookeeper

我正在学习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命令

中清楚地了解它

1 个答案:

答案 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,消费者和生产者客户只与经纪人交谈。