我正在使用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条记录已过期 最后追加
但有时会出现此错误消息。生产者有时可以很好地工作。
答案 0 :(得分:0)
说一个话题有100个分区(0-99)。 Kafka使您可以通过指定特定分区来生成主题的记录。面对我试图对大于99的分区进行分区的问题,因为经纪人拒绝了这些记录。
您的主题(testtopic)很有可能少于3个分区,而您试图将其划分为testtopic-2。
答案 1 :(得分:-3)
创建消费者时,请将ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG
设置为true
。
这样可以解决问题。