[英]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.