Consumer API:
实际生产环境一般手动提交offset
props.put("enable.auto.commit","false")
每次消费完成后手动提交offset:
- 使用异步提交的方法,不会阻塞程序的消费
KafkaConsumer.commitAsync();
- 同步进行提交,消费数据完成后,提交offset,提交完成后才能进行下一次消费
KafkaConsumer.commitSync();
- 处理完成一个分区里面的数据,就提交一次offset值,记录到对应的分区里面的数据消费到哪里
KafkaConsumer.poll获取所有的数据,包含了各个分区里面的数据
创建一个线程安全的集合
Collections.singletonMap(topicPartition)
KafkaConsumer.commitSync()