我是Kafka的新手,这是我在这里的第一篇文章,所以请忍受我;)
目前,我们是用例的POC'ing Kafka。我正在运行POC测试,并为以下结果感到困惑。我确信我已经错过了某种配置,这导致了这种情况,但是请有人可以看看并提出我所缺少的建议:
JAVA PRODUCER代码段:
for(long i=1; i <= 1000000; i++)
{
producer.send(new ProducerRecord<String, String>("test-input", null, Long.toString(i)));
Thread.sleep(10);
}
JAVA消费者代码段:
long saveLong=0;
String saveRec=null;
while (true) {
ConsumerRecords<String, String> records = kafkaConsumer.poll(Duration.ofMillis(1000));
for (ConsumerRecord<String, String> record : records) {
long thisLong = Long.parseLong(record.value());
System.out.println(record.value());
if((thisLong - saveLong)!=1){
System.out.println("unexpected values between old record >"+saveRec+"< and new record >"+record.value()+"<");
}
saveLong = thisLong;
saveRec = record.value();
}
}
我的期望:
但是,消费者生产以下物品。而且我无法弄清楚是什么导致乱序消息?非常感谢任何帮助,在此先感谢!
8729
8730
8731
8732
[main] INFO org.apache.kafka.clients.FetchSessionHandler-[Consumer clientId = consumer-1,groupId = null]将提取请求(sessionId = 151689261,epoch = 8758)发送到节点1时出错:org.apache.kafka.common .errors.DisconnectException。
8733
8737
旧记录> 8733 <和新记录> 8737 << br />之间的意外值
8736
旧记录> 8737 <和新记录> 8736 << br />之间的意外值
8735
旧记录> 8736 <和新记录> 8735 << br />之间的意外值
8734
旧记录> 8735 <和新记录> 8734 << br />之间的意外值
8733
旧记录> 8734 <和新记录> 8733 << br />之间的意外值
8738
旧记录> 8733 <和新记录> 8738 << br />之间的意外值
8739
8740
8741
8742
...
...
46233
46234
46235
[main] INFO org.apache.kafka.clients.FetchSessionHandler-[Consumer clientId = consumer-1,groupId = null]将提取请求(sessionId = 93331214,纪元= 6687)发送到节点1时出错:org.apache.kafka.common .errors.DisconnectException。
46236
46240
旧记录> 46236 <和新记录> 46240 << br />之间的意外值
46239
旧记录> 46240 <和新记录> 46239 << br />之间的意外值
46238
旧记录> 46239 <和新记录> 46238 << br />之间的意外值
46237
旧记录> 46238 <和新记录> 46237 << br />之间的意外值
46236
旧记录> 46237 <和新记录> 46236 << br />之间的意外值
46241
旧记录> 46236 <和新记录> 46241 << br />之间的意外值
46242
46243
46244
46245