簡體   English   中英

Kafka Consumer 沒有通過 Java 讀取主題數據

[英]Kafka Consumer is not reading the topic data through Java

我正在向 Kafka 主題發送輸入 JSON 數據。 我可以使用以下命令在 kafka 消費者中看到相同的 JSON 數據。

.\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic mytopic --from-beginning

案例 1:但是當我嘗試從 kafka 消費者(java)讀取記錄時,沒有在 java 控制台中獲取任何記錄。 我已經嘗試了此鏈接中給出的示例https://kafka.apache.org/090/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html

案例2:如果我從生產者(命令窗口)發送任何消息,消費者(命令窗口)也會收到同樣的消息。 並且能夠在 java 控制台中看到相同的記錄。 這個場景正在起作用。

如果我通過java程序將數據提交給主題。 然后在消費者(命令窗口)中出現相同的 JSON 數據。 但是沒有進入 java console.Case1 不起作用。
案例 2 正在工作。 請讓我知道需要進行任何配置?

您需要確保最后沒有發送空行並且只使用latest - 使用auto.offset.reset: 'earliest'像上面一樣,或properties.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");

然后, consumer.seekToBeginning(consumer.assignment()); 確保;確定。

您需要設置 ConsumerConfig.AUTO_OFFSET_RESET_CONFIG 以便從頭讀取。

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

並且還要確保您沒有使用相同的消費者組 ID 運行不同的消費者進程,因為來自一個分區的數據可能會從一個進程讀取而另一個進程將看不到任何內容。

假設生產者和消費者代碼是正確的。

  • 停止所有消費者。
  • 重置您的消費者群體

$KAFKA_HOME/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group group_name --topic topic_name --reset-offsets --to-earliest --execute

  • 現在開始你的消費者

這應該可以解決您的問題。

以下是一些 Kafka 消費者屬性:

    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.*'

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM