每次我将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.
答案 0 :(得分:2)
RabbitMQ使用与队列名称相同的路由密钥自动将每个队列绑定到默认交换。
来自docs
默认交换是代理预先声明的没有名称(空字符串)的直接交换。它有一个特殊的属性,使它对简单的应用程序非常有用:创建的每个队列都使用与队列名称相同的路由键自动绑定到它。
我很确定这是AMQP规范的一部分。