我们有1个主题,每个消费者有3个分区。我们使用spring的KafkaListener批处理将数据作为批处理(25)使用。有时,我们一次看到25条消息中就有来自不同分区的数据。
这是春天的预期行为吗?如果是这样,提交如何工作?当我们通过手动提交调用acknowle()方法时,Spring将负责提交所有分区。
答案 0 :(得分:0)
不是春天,是卡夫卡;就是这样。
您必须确认每条消息,但是,是的,容器将负责提交。
如果只希望从单个分区发送消息,则可以将max.poll.records
设置为1。
顺便说一句,手动确认是很不寻常的;通常最好让容器使用AckMode.BATCH
或AckMode.RECORD
处理偏移量。