rabbitMQ的消息确认问题总结
一:生产者
生产者发送消息到MQ,如果MQ收到消息,就返回ack确认给生产者;
如果消息到达了MQ,但是没有到达队列,那么MQ就返回相关信息给生产者
如果ack确认失败,可以把消息缓存起来,再定时发送
如果发送队列失败,也是可以把队列缓存起来再定时发送。
二:消费者
消费者监听到MQ的队列,拿到消息并且消费,然后返回ack确认给MQ,
这个确认可以是ack也可以是nack。
如果是ack,就是通知MQ可以删除消息了,
如果是nack,可以选择重回队列,或者丢掉,或者自己保存起来。
如果是重回队列,MQ也可以设置重试,如果重试多次失败则发送到死信队列。