【发布时间】:2020-09-25 08:18:15
【问题描述】:
根据我在互联网上阅读的内容,使用 Spring @KafkaListener 注释的方法默认会在 5 秒内提交偏移量。 假设 5 秒后,偏移量已提交,但处理仍在进行中,并且由于某些问题在消费者崩溃之间,在这种情况下,重新平衡后,分区将分配给其他消费者,它将从下一条消息开始处理,因为之前的消息消息偏移量已提交。 这将导致消息丢失。
那么,我需要在处理完成后手动提交偏移量吗?推荐的方法是什么?
再次,如果处理完成,并且在提交之前,消费者崩溃了,那么如何避免消息 在这种情况下重复。
请建议避免消息丢失和重复的方法。我正在使用 Spring KafkaListener 使用默认配置。
【问题讨论】:
标签: spring-boot apache-kafka spring-kafka