生产者可靠性投递消息后,消费者也可能会产生一些问题,比如:没有接受到消息,接收消息后在代码执行过程中出现了异常等。在这种情况下我们需要进行额外的处理,那么就需要手动进行消息的确认签收,rabbitmq给我们提供了一个机制:ACK机制。额外的知识:RabbitMQ的死信队列详解 - 简书 (jianshu.com)
ACK机制有三种方式:
- 自动确认 acknowledge="none"
- 手动确认 acknowledge="manual"
- 根据异常情况来确认(暂时不怎么用) acknowledge="auto"
这篇博客是在这个基础上写的(17条消息) rabbitMQ 可靠性消息投递_angen2018的博客-CSDN博客,具体代码我会打包好了,放个链接下载。(17条消息) springcloud_rabbitMQ_消息可靠性投递.rar-Java文档类资源-CSDN下载
代码具体实现:
手动确认,在可靠性投递时使用
开启手动确认
spring:
rabbitmq:
port: 5672
host: localhost
username: guest
password: guest
virtual