在Rabbitmq上使用1:1的send / listen时,该服务会保留尚未被侦听器收听或未确认的消息,以便在侦听器启动时接收到积压并清除。要使它也可以工作还是需要什么配置才能使发布/订阅为1:1(类似于扇出)?
我正在将amqplib用于nodejs
答案 0 :(得分:0)
Rabbitmq队列应持久
这可确保在尝试使用队列之前先声明该队列
durable: true
});
**sample code**
var amqp = require('amqplib/callback_api');
amqp.connect('amqp://localhost', function(error0, connection) {
if (error0) {
throw error0;
}
connection.createChannel(function(error1, channel) {
if (error1) {
throw error1;
}
var queue = 'task_queue';
var msg = process.argv.slice(2).join(' ') || "Hello World!";
channel.assertQueue(queue, {
durable: true
});
channel.sendToQueue(queue, Buffer.from(msg), {
persistent: true
});
console.log(" [x] Sent '%s'", msg);
});
setTimeout(function() {
connection.close();
process.exit(0)
}, 500);
});
----------