【问题标题】:How long RabbitMQ keeps the messages for disconnected consumers?RabbitMQ 为断开连接的消费者保留消息多长时间?
【发布时间】:2016-11-06 19:43:42
【问题描述】:

假设一个队列的消费者已经断开了一段时间,在此期间产生了许多消息。

  1. 在没有持久模式的情况下,RabbitMQ 为断开连接的消费者保留消息多长时间? (它会在消费者断开连接后立即丢弃队列吗?还是会保留队列直到内存允许?)

  2. 持久模式是否会为消费者提供一种功能,以使用迄今为止发布的任何消息? (即随机访问队列、乱序获取消息或从队列开头消费)

【问题讨论】:

    标签: rabbitmq


    【解决方案1】:
    1. 有一些TTL extensions

    可以通过设置x-message-ttl 参数为给定队列设置TTL 到 queue.declare,或通过设置 message-ttl 策略。

    1. 不,它没有。消息将保留在队列中,直到它们被确认,无论其持久性如何。 (当然,除非服务器死了,如果之前没有标记为持久消息,那么消息就会消失)。

    【讨论】:

    • 如果消息没有被确认,而是一直累积在队列中怎么办?它会将它们溢出到磁盘上吗?
    • 如果队列和消息是持久的 - 是的。在此处查找“消息持久性”rabbitmq.com/tutorials/tutorial-two-python.html
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多