RabbitMQ-拒绝消息

        当消费者处理消息失败或者当前不能处理该消息时,可以给Broker发送一个拒绝消息的指令,并且可以要求Broker将该消息丢弃或者重新放入消息队列中。

        拒绝消息有两种方式,一是一次拒绝一条消息;二是一次拒绝多条消息。

一次拒绝一条:

void basicReject(long deliveryTag, boolean requeue) throws IOException;
  • deliveryTag:发布的每一条消息都会获得一个唯一的deliveryTag,它在channel范围内是唯一的

  • requeue:表示如何处理这条消息,为true表示重新放入RabbitMQ的发送队列中,为false表示通知RabbitMQ销毁该消息

 

一次拒绝多条:

    void basicNack(long deliveryTag, boolean multiple, boolean requeue) throws IOException;
  • deliveryTag:发布的每一条消息都会获得一个唯一的deliveryTag,它在channel范围内是唯一的

  • multiple:批量确认标志,为true表示包含当前消息在内的所有比该消息的deliveryTag值小的消息都被拒绝, 除了已经被应答的消息。为false则表示只拒绝本条消息

  • requeue:表示如何处理这条消息,为true表示重新放入RabbitMQ的发送队列中,为false表示通知RabbitMQ销毁该消息

        需要注意的是,如果队列中只有一个消费者的时候,需要确认不会因为拒绝消息并重新放入消息队列中而导致在同一个消费者身上发生死循环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值