卡夫卡消费者没有通过Java读取主题数据

卡夫卡消费者没有通过Java读取主题数据,java,apache-kafka,kafka-consumer-api,Java,Apache Kafka,Kafka Consumer Api,我正在向Kafka主题发送输入JSON数据。通过使用下面的命令,我可以在kafka consumer中看到相同的JSON数据 .\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic mytopic --from-beginning 案例1: 但是当我试图从kafka consumer(java)读取记录时,在java控制台中没有得到任何记录。我已经尝试了此链接中给出的示例 案例2: 如

我正在向Kafka主题发送输入JSON数据。通过使用下面的命令,我可以在kafka consumer中看到相同的JSON数据

.\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic mytopic --from-beginning
案例1: 但是当我试图从kafka consumer(java)读取记录时,在java控制台中没有得到任何记录。我已经尝试了此链接中给出的示例

案例2: 如果我从生产者(命令窗口)发送任何消息,也会进入消费者(命令窗口)。并且能够在java控制台中看到相同的记录。这一方案正在发挥作用


如果我通过java程序向主题提交数据。然后相同的JSON数据出现在使用者(命令窗口)中。但是没有进入java控制台。Case1不起作用。
Case2起作用。请告诉我是否需要进行任何配置?

您需要设置ConsumerConfig.AUTO\u OFFSET\u RESET\u CONFIG才能从头开始读取

kafkaConsumerProperties.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG,"earliest"); 

同时还要确保您没有使用相同的使用者组ID运行不同的使用者进程,因为一个分区中的数据可能从一个进程读取,而另一个分区将看不到任何内容。

假设生产者和使用者代码正确。

  • 停止所有消费者
  • 重置您的消费者组
$KAFKA_HOME/bin/KAFKA-consumer-groups.sh--引导服务器 localhost:9092--组名--主题名--重置偏移量 --最早执行

  • 现在开始你的消费者
这将解决您的问题

以下是一些卡夫卡消费品属性:

    bootstrap.servers: 'localhost:9092'
    group.id: 'group_id'
    auto.offset.reset: 'earliest'
    key.deserializer: 'org.apache.kafka.common.serialization.*' //Replace * with class
    value.deserializer: 'org.apache.kafka.common.serialization.*'

谢谢

你需要确保你没有在结尾发送空行,只使用最新的
-使用
auto.offset.reset:“最早的”
,如上面所述,或
properties.put(ConsumerConfig.auto\u offset\u reset\u CONFIG,“最早的”)

然后呢,,
consumer.seektobegining(consumer.assignment())以确保。

因此,您开始使用java,然后向主题发送新数据,但没有出现任何消息(案例1)?您是否仅使用一个JVM运行案例2?您是如何编写producer的?与我们共享您的代码。启动控制台使用者和自定义使用者。然后运行java producer。另外,确保制作人向卡夫卡发送消息。您是否在两个消费者上都看到消息?