避免apache kafka消费者中重复消息的有效策略如何从 Kafka 获取一次消息?
我已经学习apache kafka一个月了。然而,我现在被困在一个点上。我的用例是,我有两个或多个消费者进程在不同的机器上运行。我运行了一些测试,其中我在kafka服务器中发布了10,000条消息。然后在处理这些消息时,我杀死了其中一个使用者进程并重新启动它。使用者在文件中写入已处理的消息。因此,在消费完成后,文件显示超过10k条消息。所以有些消息被复制了。
在消费者过程中,我禁用了自动提交。消费者手动提交批量偏移量。因此,例如,如果将100条消息写入文件,则消费者提交偏移量。当单个使用者进程正在运行时,它崩溃并以这种方式恢复重复。但是,当多个使用者正在运行时,其中一个使用者崩溃并恢复,它会将重复的消息写入文件。
是否有任何有效的策略来避免这些重复的消息?