消费者连接到zookeeper而不是消息消费的经纪人?

use*_*603 3 java apache-kafka

根据Kafka 教程中的此文档

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
Run Code Online (Sandbox Code Playgroud)

启动消费者接收消息

    bin/kafka-console-consumer.sh --zookeeper localhost:2181 —topic Hello-Kafka --from-beginning
Run Code Online (Sandbox Code Playgroud)

根据我的理解,消费者直接从代理消费消息,但在上面的消费者命令中,我们没有提到代理,而只提到了动物园管理员。消费者会连接到zookeeper(而不是broker)来消费消息吗?

Han*_*sen 5

有旧的 Kafka 消费者(0.8.2 及更早版本)和新的 Kafka 消费者(0.9 及更高版本)。有关新消费者如何工作的详细描述,请参阅此处的原始公告博客

https://www.confluent.io/blog/tutorial-getting-started-with-the-new-apache-kafka-0-9-consumer-client/

旧消费者会连接到 zookeeper,但仍会从 Kafka 获取所有消息。

新的消费者没有 zookeeper 依赖,也根本没有连接到 zookeeper。

控制台生产者和控制台消费者支持旧的和新的 api,具体取决于您提供的选项。您提供的示例控制台消费者是旧消费者,因为它指定了 --zookeeper 而不是 --bootstrap-server