发送消息确认
发送确认发生在生产者。保证消息成功发送到了queue。
callback
如果消息没有到exchange,则confirm回调,ack=false
如果消息到达exchange,则confirm回调,ack=true
exchange到queue成功,则不回调return
exchange到queue失败,则回调return(需设置mandatory=true,否则不回回调,消息就丢了)
ACK确认
ACK确认发生在消费者。
消费者在消费消息的时候,通过ack确认,保证消息在消费成功之后才会从queue中移除。
开启ack
spring.rabbitmq.listener.simple.acknowledge-mode=manual
spring.rabbitmq.listener.direct.acknowledge-mode=manual