springboot + rabbitmq 消费者消息确认 (Ack)

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);

参考链接:https://www.jianshu.com/p/2c5eebfd0e95

收藏链接:https://www.jianshu.com/p/cc3d2017e7b3

你可能感兴趣的:(rabbitmq)