我正在使用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
收到以下错误消息:
自上次追加以来,由于30004毫秒已经过去了testtopic-2的1条记录
但有时会出现此错误消息 . 生产环境 者有时可以很好地工作 .
2 回答
假设一个主题有100个分区(0-99) . Kafka允许您通过指定特定分区来为主题生成记录 . 面对我试图生成分区> 99的问题,因为经纪人拒绝这些记录 .
很可能你的主题(testtopic)有少于3个分区,你试图生成testtopic-2 .
创建使用者时,将
ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG
设置为true
.这将解决一个问题 .