![3b0379aaa6a83b9cf1f791935096711e.png](https://img-blog.csdnimg.cn/img_convert/3b0379aaa6a83b9cf1f791935096711e.png)
1. 本篇概要
其实,还有1种场景需要考虑:当消费者接收到消息后,还没处理完业务逻辑,消费者挂掉了,那消息也算丢失了?,比如用户下单,订单中心发送了1个消息到RabbitMQ里的队列,积分中心收到这个消息,准备给这个下单的用户增加20积分,但积分还没增加成功呢,积分中心自己挂掉了,导致数据出现问题。
那么如何解决这种问题呢?
为了保证消息被消费者成功的消费,RabbitMQ提供了消息确认机制(message acknowledgement),本文主要讲解RabbitMQ中,如何使用消息确认机制来保证消息被消费者成功的消费,避免因为消费者突然宕机而引起的消息丢失。
![1b9e80a1e25a54faf33b1dbd8290fd61.png](https://img-blog.csdnimg.cn/img_convert/1b9e80a1e25a54faf33b1dbd8290fd61.png)
2. 开启显式Ack模式
我们开启一个消费者的代码是这样的:
// 创建队列消费者com.rabbitmq.client.Consumer con