【问题标题】:RabbitMQ: Move a message to DLX when there are no queues in the original exchangeRabbitMQ:当原始交换中没有队列时将消息移动到 DLX
【发布时间】:2017-08-15 04:25:24
【问题描述】:

我想知道是否可以将 RabbitMQ 配置为在将消息置于另一个(主题)交换中一段时间​​后将其移动到 DLX,而不会被传递到任何队列并被消费?

我见过的所有示例都要求存在队列,因为必须在队列上声明 DLX 映射。但是如果没有队列怎么办?

在我的例子中,客户端声明自动删除队列,当客户端关闭连接时该队列消失。这会给主题交换上的发布者带来问题,永远不会通知发布者在分配的时间内不太可能使用该消息。

FWIW,我正在使用 C# 中的 RabbitMQ。

[更新]

我发现了一个article,这似乎表明我需要在 DLX 之外设置一个称为 alternate exchange 的东西,因为 DLX 只接收已经路由的消息。我目前正在尝试了解它应该如何工作。

欢迎提出更多建议!

【问题讨论】:

    标签: c# rabbitmq


    【解决方案1】:

    看看alternate exchange docs article

    在声明主交易所时,您可以提供alternate exchange的名称作为参数。

    • 创建alternate exhange 并将其设为fanout 类型。
    • 创建一个绑定到该备用交换的单一持久队列。

    现在所有未路由的消息都应该在该队列中结束。

    【讨论】:

    • 谢谢!这正是我所需要的。
    猜你喜欢
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    相关资源
    最近更新 更多