【问题标题】:Persistence and Durability Concepts Confusion in AMQPAMQP 中的持久性和持久性概念混淆
【发布时间】:2013-07-17 04:11:06
【问题描述】:

对这两个术语有点困惑,我在想拥有持久消息但瞬态(非持久)队列的目的是什么? 毕竟,如果代理重新启动并且队列未恢复,则恢复的消息将被浪费。

【问题讨论】:

    标签: rabbitmq amqp qpid


    【解决方案1】:

    您可以拥有持久队列但“致命”消息,因此在代理重新启动后,您仍然可以拥有队列,但它将是空的,反之亦然,但是您很伤心,是的,您将丢失队列中的所有消息。

    在你提供的消息持久化选项的组合中确实没用但不会导致错误。

    但是如果你绑定alternate exchange 来交换你正在发布消息并且它是持久的,重启后,如果你没有声明临时队列,你可以将消息路由到它。

    例子:

    假设我们有这样的组合和正确绑定的队列,Q*1 接收消息M*1Q*2 - M*2

    [    Exchange-main/durable   ] + [Exchange-alternate/durable]
    [Qm1/transient][Qm2/transient]   [Qax1/durable][Qax2/durable]
    

    让我们发布消息[Mt1/transient]和`[Md1/durable],我们会得到这样的情况:

    [    Exchange-main/durable   ] + [Exchange-alternate/durable]
    [Qm1/transient][Qm2/transient]   [Qax1/durable][Qax2/durable]
    [Mt1/transient]
    [Md1/durable]
    

    重启后会得到

    [    Exchange-main/durable   ] + [Exchange-alternate/durable]
                                     [Qax1/durable][Qax2/durable]
    

    让我们再次发布两条消息,[Mt1/transient] 和 `[Md1/durable]:

    [    Exchange-main/durable   ] + [Exchange-alternate/durable]
                                     [Qax1/durable][Qax2/durable]
                                     [Mt1/transient]
                                     [Md1/durable]
    

    所以,再次重启代理:

    [    Exchange-main/durable   ] + [Exchange-alternate/durable]
                                     [Qax1/durable][Qax2/durable]
                                     [Md1/durable]
    

    【讨论】:

    • 因此,在反之亦然的情况下,当我们有“致命”队列和持久消息时,重新启动后,我们最终将没有队列,但之前分配给不再存在的队列的消息,这是否意味着我们有悬空消息?
    • 消息将丢失。我用示例更新了我的答案,希望它会有所帮助。
    • @pinepain:定义“消息将丢失”。这是否意味着消息已从磁盘中删除,或者它们仍在磁盘上但由于 RabbitMQ 不再知道它们在哪里而成为孤立的?
    • @Ellesedil 无法准确回答幕后发生的事情,但您不应该依赖某些保留在磁盘上的消息仍然物理存在的情况。随着广泛的消息流,这甚至是极不可能的。更详细的答案可以搜索 [RabbitMQ 官方用户群](groups.google.com/forum/#!forum/rabbitmq-users],这个问题比较具体,RMQ 工程师会在那里阅读并回复。
    猜你喜欢
    • 1970-01-01
    • 2017-01-15
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多