如何停止绑定到 AMQP 默认交换

How to stop binding to AMQP default exchange?

本文关键字:默认 交换 AMQP 何停止 绑定      更新时间:2023-09-26

每次我将AMQP队列绑定到交换时,它似乎都会自动绑定到"默认"的直接交换。

以下是使用 rabbitMQ 服务器和 node.js 的代码:

var amqp = require('amqp');
var connection = amqp.createConnection({host:'localhost'});
connection.on('ready', function(){
    var q = connection.queue('test_queue_name');
    var exc = connection.exchange('test_exchange', { autoDelete:true });
    q.bind('test_exchange', 'test.key');
});

以下是使用"rabbitmqctl list_bindings"命令时的控制台输出:

Listing bindings ...
        exchange        test_queue_name queue   test_queue_name []
test_exchange   exchange        test_queue_name queue   test.key        []
...done.

> RabbitMQ 使用与队列名称相同的路由密钥自动将每个队列绑定到默认交换。

从文档中

默认交易所是直接交换,没有经纪人预先声明的名称(空字符串)。它有一个特殊的属性,使其对简单的应用程序非常有用:创建的每个队列都使用与队列名称相同的路由密钥自动绑定到它。

我很确定这是AMQP规范的一部分。