死信概念
死信,顾名思义就是无法被消费的消息,producer将消息投递到brocker或者直接到queue里了,consumer从queue取出消息进行消费,但某些时候由于特定原型导致queue中的消息无法被消费掉,这样的消息如果没有后续的处理,就变成了死信,有了死信自然就有死信队列。
应用场景: 为了保证订单业务的消息数据不丢失,需要使用到RabbitMQ的死信队列机制,当消息发生异常时,将该异常消息投入到死信队列中去,例子: 用户在商城里点击去支付在指定时间内未支付时自动失败。
死信的来源
1. 消息TTL过期 (消息的存活时间)
2. 队列到达最大长度(队列满了,无法再添加数据到)
3. 消息被拒绝(basic.reject 或 basic.nack,即消费方否定应答或拒绝应答)并且requeue = false(不放回队列中)
死信产生和处理流程图

版权声明:本文为m0_55435847原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。