介绍
在使用RabbitMQ发送消息如果出现消息没有发送到,队列没有接收到情况。需要消息确认来排错。
RabbitMQ发送端确认
ConfirmCallback 确认模式 和 ReturnCallback 未投递到 queue 退回模式
ConfirmCallback 确认模式 是生产者发送消息 被broker接收 会触发ConfirmCallback。消息投递有没有成功 可以通过ack来查看是否投递成功。application.yml配置文件开启发送端确认模式:spring.rabbitmq.publisher-confirms: true
ReturnCallback退回模式 交换机将接收到消息发送给队列 如果失败 会触发ReturnCallback方法。成功不会触发。如果错误可以通过 replyCode, String replyText, String exchange, String routingKey 查看错误码,错误信息,交换机名称,路由键 进行排错。application.yml配置文件开启发送端消息抵达队列:spring.rabbitmq.publisher-returns: true 。 spring.rabbitmq.template.mandatory: true # 只要消息抵达队列,以异步发送优先回调returnconfirms
RabbitMQ消费端确认-Ack手动消息确认
在application.yml文件配置信息ack手动确认 spring.rabbitmq.listener.direct.acknowledge-mode: manual 。
impor