【问题标题】:RabbitMQ Exchange not found in vhost "/'在虚拟主机“/”中找不到 RabbitMQ 交换
【发布时间】:2021-05-19 05:25:03
【问题描述】:

我正在尝试在我的 Rabbitmq 设置中设置重试系统。为了实现这一点,我必须声明一些交换、队列并在它们之间创建必要的绑定。所以我有这种性质的东西

await subscriber.createExchange('TTL-PAYMENTS', 'direct')
await subscriber.createExchange('DLX-PAYMENTS', 'fanout')
await subscriber.createQueues('payments-retry-1-30s', 'DLX-PAYMENTS', 30000)
await subscriber.createQueues('payments-retry-2-50s', 'DLX-PAYMENTS', 50000)
await subscriber.bindExchanges('payments', 'DLX-PAYMETS')
await subscriber.bindExchanges('payments-retry-1-30s', 'TTL-PAYMETS', 'retry-1')
await subscriber.bindExchanges('payments-retry-2-50s', 'TTL-PAYMETS', 'retry-2')

但是当我启动服务器时,我得到了这个错误

Error: Channel closed by server: 404 (NOT-FOUND) with message "NOT_FOUND - no exchange 'DLX-PAYMETS' in vhost '/'"

当我检查我的 rabbitmq 管理仪表板时,我可以看到已经创建了交换和必要的队列。根据我的理解,交换是幂等的,这意味着如果它不存在,它将被创建,如果它存在,只要交换属性没有任何变化,交换应该保持不变。所以我很困惑为什么会这样。我可能做错了什么?我该如何纠正这个问题?非常感谢!

【问题讨论】:

  • 显然有一个错字 - "DLX-PAYMETS"

标签: javascript node.js rabbitmq amqp


【解决方案1】:

看起来 DLX-PAYMETS 有一个错字,缺少 N。您创建了一个名为 DLX-PAYMENTS 的交易所。

【讨论】:

    猜你喜欢
    • 2019-04-05
    • 1970-01-01
    • 2018-03-02
    • 2019-11-29
    • 1970-01-01
    • 2021-08-15
    • 2014-08-04
    • 2019-07-12
    • 2013-06-01
    相关资源
    最近更新 更多