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

relationship zookeeper and kafka

我正在学习kafka CLI。并有一个问题。 为什么我们在创建主题和消费消息时必须使用 --zookeeper 选项,但是在生成消息时,我们只使用 --broker-list ,它只引用 Kafka 本身, 1.create 个主题

 ./kafka-topics.sh --create --zookeeper `docker-machine ip bigdata` --replication-factor 1  --partitions 1 --topic bigdata

2.produce 留言

 ./kafka-console-producer.sh --broker-list `docker-machine ip bigdata`:9092 --topic bigdata

3.consume 留言

 ./kafka-console-consumer.sh --zookeeper `docker-machine ip bigdata`:2181 --topic bigdata

我知道kafka必须要用zookeeper来协调。但是我仍然没有从 CLI command

中很清楚

你要区分话题管理和话题消费。 ZK in不仅用于代理协调,还用于主题管理。

对于主题管理,ZK 用于存储主题元数据,代理(目前,Kafka 0.10.1)不提供 API 用于主题管理。因此,管理 CLI 工具实际上直接与 ZK(而不是代理)对话。当新的 "admin client" 完全实施时,这将在未来改变 (c.f。https://cwiki.apache.org/confluence/display/KAFKA/KIP-4+-+Command+line+and+centralized+administrative+operations)

对于主题消费,不需要ZK,消费者和生产者客户只与经纪人对话。