RabbitMQ 死信队列与延迟队列实践队列参数x-dead-letter-exchange: main-exchange

x-dead-letter-routing-key: task

x-message-ttl: 5000

Node.js 示例const amqp = require('amqplib');

(async () => {

const conn = await amqp.connect('amqp://localhost');

const ch = await conn.createChannel();

await ch.assertExchange('main-exchange', 'direct', { durable: true });

await ch.assertExchange('delay-exchange', 'direct', { durable: true });

await ch.assertQueue('task', { durable: true });

await ch.bindQueue('task', 'main-exchange', 'task');

await ch.assertQueue('delay.5s', {

durable: true,

arguments: {

'x-dead-letter-exchange': 'main-exchange',

'x-dead-letter-routing-key': 'task',

'x-message-ttl': 5000

}

});

await ch.bindQueue('delay.5s', 'delay-exchange', 'task');

ch.publish('delay-exchange', 'task', Buffer.from('hello'));

})();

备选方案使用每消息过期 `expiration` 实现不同延迟总结通过 TTL+DLX 组合可实现稳定的延迟与重试机制,兼顾可维护性与可靠性。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部