我很困惑当新消费者上线时,rabbitmq的运作方式。
我了解当前有x个连接的消费者,然后生产者发送消息,消费者将收到这些消息。
但是说消费者X已经关闭,现在上网或者它是一个全新的消费者。它是否有可能在过去24小时内重播消息?
答案 0 :(得分:0)
这是RabbitMQ的正常行为。
请阅读: https://www.rabbitmq.com/tutorials/tutorial-two-python.html
答案 1 :(得分:0)
它可以在过去24小时内重播消息吗?
这取决于你如何设置。
如果您有不自动删除的队列,他们将继续收集消息并等待消费者连接。
因为我的消费者正在崩溃,我有数千条消息被困在队列中的实例。一旦我修复了我的代码,消息就开始消耗了。
但是,如果你在消费者死亡时让你的队列被删除,那么你就会遇到麻烦。
有一个插件可以读取来自交换机的最后一个##消息,但它不能以基于时间的方式工作...只是最后一个消息的##:https://github.com/rabbitmq/rabbitmq-recent-history-exchange