卡夫卡消费者不阅读消息

Posted

技术标签:

【中文标题】卡夫卡消费者不阅读消息【英文标题】:Kafka Consumer not reading messages 【发布时间】:2019-01-08 10:23:34 【问题描述】:

我在单个节点上运行 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>

我也可以通过控制台阅读

【问题讨论】:

您尝试更改组 ID 吗? 请同时显示生产者配置。还可以查看 kafka 使用的默认组 ID。只需检查“kmblhdpedge”是否已解决? 【参考方案1】:

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

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

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


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

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

【讨论】:

以上是关于卡夫卡消费者不阅读消息的主要内容,如果未能解决你的问题,请参考以下文章

卡夫卡消费者不是从最新消息开始

消费者。如何指定要读取的分区? [卡夫卡]

卡夫卡长轮询

可能是什么原因,卡夫卡消费者承认,抛出InterruptedException?

卡夫卡与cloudera TLS失败

我们可以收听 Kafka Consumer 的特定键控消息吗