Zookeper在2181端口启动 Broker / Kafka始于9092
启动制作人发送讯息
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic Hello-Kafka // producer is producing directly to broker not zookeeper which is correct
让消费者接收消息
bin/kafka-console-consumer.sh --zookeeper localhost:2181 —topic Hello-Kafka --from-beginning
我的理解消费者直接从经纪人那里消费消息,但在上面的消费者命令中,我们没有提到经纪人,只有动物园管理员。将 消费者连接到zookeeper(而不是代理)消费消息?
答案 0 :(得分:4)
你使用的--zookeeper参数是旧的消费者。新的Kafka消费者(您应该使用它)直接连接到Kafka经纪人。为此,您可以使用--bootstrap-server选项而不是--zookeeper指定localhost:9092。新的消费者不再在Zookeeper上保存偏移量,而是在Kafka代理上保存名为__consumer_offsets的特定主题。
答案 1 :(得分:4)
有老卡夫卡消费者(0.8.2及更早版本)和新的卡夫卡消费者(0.9及以上)。有关新消费者如何工作的详细描述,请参阅此处的原始公告博客
旧的消费者将连接到zookeeper,但仍然会从Kafka获取所有消息。
新的消费者没有zookeeper依赖,根本没有连接到zookeeper。
console-producer和console-consumer支持旧的新api,具体取决于您提供的选项。您提供的示例控制台使用者是旧的使用者,因为它指定了--zookeeper而不是--bootstrap-server
答案 2 :(得分:-1)
消费者订阅主题并连接到zookeeper .Kafka服务器通过Zookeeper群集共享信息。 Kafka在Zookeeper中存储基本元数据,例如有关主题,代理,消费者偏移(队列读取器)等的信息。为了更好地理解zookeeper的角色,请查看以下链接。
https://www.quora.com/What-is-the-actual-role-of-ZooKeeper-in-Kafka