惊落一身雪 发表于 2024-11-11 06:46:47

RabbitMQ的死信队列

1.死信的概念

死信简朴理解就是因为种种原因,无法被斲丧的消息.
有死信自然就有死信队列,消息再一个队列中编程死信之后,它能被重新发送到另一个互换器中,这个互换器就是DLX,绑定DLX的队列,就被称为死信队列,简称DLQ
https://i-blog.csdnimg.cn/direct/2b27b67f68a94d9a8d97628914b86d6c.png
消息变成死信一般由于一下几种情况:
1.消息被拒绝
2.消息逾期
3.队列达到最大长度 
1.2正常队列绑定死信互换机

retrn QueueBuilder.durable(Constant.NORMAL_QUEUE)
.deadLetterExchange(Constant.DLX_EXCHANGE_NAME)
.deadLetterRoutingKey("dlx").build(); 当这个队列存在死信时,RabbitMQ会自动把这个消息重新发布到设置的DLX上,进而被路由到死信队列上。 
1.3死信队列的应用场景



[*]消息重试:将死信消息重新发送到原队列或另一个队列进行重试处理,比如,在一个付出系统中,付出效果关照消息大概因为网络问题无法被付出回调服务及时斲丧,那么可以将该消息放入死信队列,稍后再进行重试,直到斲丧乐成。
[*]消息丢弃:直接丢弃这些无法处理的消息,以克制他们占用系统资源
[*]日志网络:将私信消息作为日志网络起来,用于后续分析和问题定位
[*]例如,一个电商系统中,订单处理服务在斲丧订单消息时,如果因为库存不敷无法完成订单处理,那么该订单消息就可以被发送到死信队列中,等待人工参与或者后续的库存补充后再进行处理


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: RabbitMQ的死信队列