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 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部
2.075487s