springboot + rabbitmq 消费者消息确认 (Ack)
开启消息确认
消费者
channel.basicAck(deliveryTag, false);
deliveryTag:该消息的index
multiple:是否批量.true:将一次性ack所有小于deliveryTag的消息。
channel.basicNack(deliveryTag, false, true);
deliveryTag:该消息的index
multiple:是否批量.true:将一次性拒绝所有小于deliveryTag的消息。
requeue:被拒绝的是否重新入队列
channel.basicReject(deliveryTag:, false);
deliveryTag:该消息的index
requeue:被拒绝的是否重新入队列
总结: 消息正确消费了,使用channel.basicAck(deliveryTag, false)进行确认。
如果消息消费过程中发生异常,如果想把消息重新放回消息队列中给其他消费者或者下次消费,
则使用 channel.basicNack(deliveryTag, false, true),或者 channel.basicReject(deliveryTag:, true);
如果消息异常,而且不想再把消息重新放入队列中
则使用 channel.basicNack(deliveryTag, false, false), channel.basicReject(deliveryTag:, false);
版权声明:本文为liuxiangke0210原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。