【问题标题】:Azure Service Bus Forward Dead Letter Message ForwardingAzure 服务总线转发死信消息转发
【发布时间】:2018-11-10 15:04:26
【问题描述】:

我在 Azure 服务总线中设置了一个队列,消息 TTL 为 5 秒(这太短了吗?我注意到它会保持活动状态超过 5 秒)。

到期后,我希望将其转发到另一个队列进行处理(超时队列)。我已将 ForwardDeadLetteredMessagesTo 属性设置为超时队列的名称,但是当原始队列上的消息过期时,它只会进入原始队列死信队列,而不是进入超时队列。

我是否误解了它应该如何工作?

我的用例是我有一些消费者只在一天中的某些时间在主队列上收听。如果没有在主队列上监听,我希望它过期并被推送到超时队列。超时队列总是有一个消费者,因此它应该拾取该消息并正确处理它。我可以有多个主队列,所以我想让所有主队列将它们过期的消息转发到超时队列,这样我就不必为每个主队列的死信队列都有一个消费者。

【问题讨论】:

    标签: azure azureservicebus azure-servicebus-queues


    【解决方案1】:

    这个场景听起来很合理。使用死信自动转发设置 DefaultMessageTimeToLive 和/或 Message.TimeToLive 是不够的。实际上,您必须首先将那些过期的消息变成死信。为此,您还需要设置 EnableDeadLetteringOnMessageExpiration 才能使场景正常工作。

    我注意到它会保持活跃状态​​超过 5 秒)。

    这很正常。对于要从​​队列中删除的过期消息,必须有一个活动的侦听器。因此,如果您有许多已过期的消息并且没有单个消费者尝试接收未过期的消息,请注意不要使队列溢出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-07
      • 2019-09-27
      相关资源
      最近更新 更多