新的消费者如何消费过去在 RabbitMQ 中产生的消息?

How dose a new consumer consume the messages produced in the past in RabbitMQ?

我是 Apache Kafka 的用户,正在尝试 运行 RabbitMQ。 Kafka 支持消费者消费之前产生的任何消息。 (通过在Kafka的log中重新widning'offset')

我想知道RabbitMQ是否有相同的功能。 (一个新的消费者来了,请求了某个点之后的所有消息。)

I'd like to know whether RabbitMQ has the same functionality

没有。

Kafka 专为该功能而构建 - 允许您从一个点向前移动的事件日志。

RabbitMQ 是一个消息队列——先进先出。一旦消息被处理,它就完成了。没有要遍历的历史记录或日志。


RabbitMQ 有一个 "recent history" 插件,但它不提供与 Kafka 相同的功能集。

https://github.com/rabbitmq/rabbitmq-recent-history-exchange#readme

它只允许你说类似"new consumers should get the last 20 messages, before continuing to get new messages"的东西。

另一方面,Kafka 为您提供了更广泛的历史以及从头开始并根据需要向前推进的能力。