MQ思考与总结

MQ思考与总结

死信队列

[RabbitMQ篇——RabbitMQ死信队列详细介绍,超详细、超全面的技术点剖析!-CSDN博客](https://blog.csdn.net/CNpeaceful/article/details/134987624#:~:text=死信队列的介绍: 死信队列是一个专门用于接收无法被消费者正确处理的消息的队列。,当消息被投递到死信队列时,可以进行一些特殊的处理操作,比如记录日志、发送告警等。 同时,死信队列也可以配置一些特定的参数,比如过期时间、最大长度等,用于控制消息的生命周期。)

在实际的应用中,可能会遇到一些消息无法被消费者正确处理的情况,比如消息格式错误、消费者处理失败等。如果这些消息一直留在原始队列中,会导致队列堵塞,影响其他消息的消费。为了解决这个问题,RabbitMQ引入了死信队列的概念

死信队列的介绍: 死信队列是一个专门用于接收无法被消费者正确处理的消息的队列。当消息被投递到死信队列时,可以进行一些特殊的处理操作,比如记录日志、发送告警等。同时,死信队列也可以配置一些特定的参数,比如过期时间、最大长度等,用于控制消息的生命周期。

工作流程:

![RabbitMQ篇——RabbitMQ死信队列详细介绍,超详细、超全面的技术点剖析!-CSDN博客 - image (2)](../image/RabbitMQ篇——RabbitMQ死信队列详细介绍,超详细、超全面的技术点剖析!-CSDN博客 - image (2).png)

优点:

  1. 提高系统可靠性:将无法处理的消息转移到死信队列,避免消息堆积和影响其他消息的消费。
  2. 方便消息处理错误的监控:通过监控死信队列中的消息数量和处理速度,可以及时发现和处理消费者的错误。

使用

  1. 设置死信队列,和死信交换机这其实就和普通的队列交换机一样

这里死信队列使用direct工作模式,所以在绑定死信队列时需要配置Router Key,如果仅有一个死信队列建议使用fanout模式

![RabbitMQ篇——RabbitMQ死信队列详细介绍,超详细、超全面的技术点剖析!-CSDN博客 - image](../image/RabbitMQ篇——RabbitMQ死信队列详细介绍,超详细、超全面的技术点剖析!-CSDN博客 - image.png)

  1. 在需要处理死信的队列上绑定死信交换机

![RabbitMQ篇——RabbitMQ死信队列详细介绍,超详细、超全面的技术点剖析!-CSDN博客 - image (1)](../image/RabbitMQ篇——RabbitMQ死信队列详细介绍,超详细、超全面的技术点剖析!-CSDN博客 - image (1).png)