首页 > 解决方案 > Kafka / RabbitMQ 中的每条消息确认

问题描述

我们有一个工作的 rabbitmq .implementation ,由于量大,我们计划切换到 kafka。

我有一个疑问。

在 rabbitMQ 中,当消费者从 Q 消费消息时,消息会进入不同的阶段,即未确认阶段。客户端/消费者需要一些时间来处理消息,处理成功后,它会向 Q 发送确认消息,并且消息会从 Q 中删除。如果不成功,在定义的时间段后,如果 Q 没有得到确认,则消息是附加在 Q 的末尾。这样我们就不会丢失任何消息。

以我对 Kafka 的了解,我知道如果例如消息 100 未成功处理,则偏移量不会增加,但如果消息 101 处理成功,则偏移量会增加。所以我丢失了消息 100。

有没有办法保证任何消息都不会丢失。

标签: apache-kafkarabbitmqproducer-consumer

解决方案


除非到达配置之一,否则 Kafka 不会从主题中删除消息log.retention.bytes log.retention.hours log.retention.minutes log.retention.ms。因此,如果偏移量增加,您不会丢失以前的消息,您可以简单地将偏移量更改为您想要的位置。


推荐阅读