我是卡夫卡的新手。我正在使用Kafka 0.9.0.0客户端的java。在使用特定主题的数据时,我每次都会收到相同的消息(这是第一次发布的),当我启动生产者 - 消费者java项目时。
我的要求是生成一些消息并使用它并检查两条消息是否相同。
以下是我为Kafka Consumer使用的代码: -
KafkaConsumer<String, String> newConsumer = new KafkaConsumer<String, String>(properties);
newConsumer.subscribe(Collections.singletonList(props.getProperty("monitoring.topic")));
String consumerRecord = "";
ConsumerRecords<String, String> consumerRecords = newConsumer.poll(120000);
for (ConsumerRecord<String, String> record : consumerRecords) {
logger.info("Found message for {} {} {}", adapter, record.key(), record.value());
System.out.println("consumerMessage : " + record.value());
JSONObject jsonConsumerMessage = (JSONObject) (parser.parse(record.value()));
Long offset = record.offset();
System.out.println("Offset of this record is " + offset);
String UUIDProducer = message.get("UUID").toString();
String UUIDConsumer = jsonConsumerMessage.get("UUID").toString();
System.out.println("UUIDProducer : " + UUIDProducer);
System.out.println("UUIDConsumer : " + UUIDConsumer);
if (UUIDProducer.equals(UUIDConsumer)) {
return true;
} else
return false;
}
注意: - 我可以通过命令行使用最新消息。
有人可以指导我吗?
答案 0 :(得分:0)
我的愚蠢错误是我在for循环中返回true和false值。一旦第一条消息来自主题,它就会导致循环出现。