首页 > 解决方案 > 卡夫卡消费者不阅读消息

问题描述

我在单个节点上运行 Kafka v1.0.1,我能够将消息推送到主题,但不知何故无法使用下面的 python 代码从另一个节点消费消息。

from kafka import KafkaConsumer
consumer = KafkaConsumer(
    'kotak-test',
    bootstrap_servers=['kmblhdpedge:9092'],
    auto offset reset='earliest',
    enable auto commit=True,
    group id=' test1',
    value_deserializer-lambda x: loads (x.decode('utf-8')))

for message in consumer:
    message = message.value
    print (message)

我不断地使用以下命令从控制台推送消息:

bin/kafka-console-producer --zookeeper <zookeeper-node>:<port> --topic <topic_name>

我也可以通过控制台阅读

标签: pythonapache-kafkaproducer-consumer

解决方案


您使用的是旧的基于 Zookeeper 的生产者,但使用的是较新的基于 Kafka 的消费者。这些工作和存储偏移量的逻辑是不一样的。

您需要--broker-list在 Console Producer 上使用

与控制台消费者类似,使用--bootstrap-server,而不是--zookeeper


此外,这些属性中不应有空格

auto offset reset='earliest',
enable auto commit=True,
group id=' test1',

推荐阅读