我正在使用 Kafka 0.10.1.1 并编写了一个测试生产者,但在 producer.send
中出现错误onCompletion
打回来:
producer.send(record, new Callback() {
@Override
public void onCompletion(RecordMetadata metadata, Exception e) {
if (e != null){
System.out.println(e.getMessage());
}
}
});
具有配置的生产者:
timeout.ms=30000, linger.ms=5, batch.size=1000
收到以下错误消息:
Expiring 1 record(s) for testtopic-2 due to 30004 ms has passed since last append
但是这个错误信息只是有时出现。制片人有时可以工作得很好。
最佳答案
假设一个主题有 100 个分区 (0-99)。 Kafka 允许您通过指定特定分区为主题生成记录。面临我试图生成分区 > 99 的问题,因为代理拒绝这些记录。
您的主题(testtopic)极有可能在您尝试生成 testtopic-2 时少于 3 个分区。
关于apache-kafka - 自上次追加以来,卡夫卡生产者发送的消息已过期 30003 毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42196369/