rabbitmq系列(四)死信队列

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

rabbitmq系列(四)死信队列

执偕   2020-03-23 我要评论
## 一、什么是死信队列 当消息在一个队列中变成一个死信之后,它将被重新publish到另一个交换机上,这个交换机我们就叫做死信交换机,私信交换机将死信投递到一个队列上就是死信队列。具体原理如下图: ![死信交换机.png](https://img2020.cnblogs.com/other/1719198/202003/1719198-20200323092450941-207669488.png) 消息变成死信的三种情况: - 消息被拒绝(basic.reject / basic.nack),并且requeue = false - 消息TTL过期 - 队列达到最大长度 ## 二、手动签收应答模式 应答模式分为两种,手动签收和自动签收,自动应答就是消费者消费了一条消息就自动告诉队列删除消息。这样的弊端就是不管消费逻辑有没有成功,都会将消息删除,这样就会造成消息丢失。而使用手动签收后,就是在消费逻辑处理成功后,手动告诉队列消费成功,然后队列再去删除这条消息。 1. 再消费者配置文件中开启手动签收模式 ```java spring.rabbitmq.listener.simple.acknowledge-mode = manual ``` 2. 在消费逻辑处理成功后手动签收,修改消费者代码 ```java @RabbitListener(queues = QUEUE_NAME) public void receiveMessage(Message message,@Headers Map

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们