我正在使用Spring Kafka与我的Kafka实例进行接口。假设我有一个带有2个以上分区的主题。
例如,在我的基于Spring Kafka的应用程序崩溃(甚至重新平衡),然后又重新联机并且主题中等待消息的情况下,我目前正在使用一种策略,其中最新的已提交偏移量每个分区的数据都存储在外部存储中,然后我查看消费者对该分区的分配,然后寻找该偏移量以恢复处理。
(这是基于我在O'Reilly的书中读到的策略。)
是否存在一种更好的方法来处理这种情况,以实现“恰好一次”的语义并且不丢失任何等待消息?还是Spring Kafka有更好/更惯用的方式来处理这种情况?
谢谢。
答案 0 :(得分:1)
您是否有理由不对kafka本身的抵销点进行检查?
通常,您可以选择“恰好一次”处理: