RabbitMQ中basicNack批量消息含义及与basicReject的功能异同问询
问题1:basicNack中的批量消息指的是什么?
AMQP 0-9-1 规范原生定义的 basic.reject 方法,仅支持客户端单次拒绝一条已经投递的消息,调用时可以指定消息代理将被拒绝的消息直接丢弃,或是重新放回队列等待再次投递,但该方法不支持一次性操作多条消息。
basicNack 是协议扩展出来的否定确认方法,这里的批量消息指的是你可以通过一次调用,拒绝当前通道下所有小于你指定deliveryTag的未确认消息,不需要对每条消息单独发起拒绝请求,能大幅降低大流量消费场景下的通信开销。
问题2:当basicNack的multiple参数设置为false时,是否和basicReject功能完全一致?
是的,二者功能完全等价,没有任何区别。
当multiple参数设为false时,basicNack只会拒绝你传入的指定deliveryTag对应的单条消息,行为和basicReject完全一致,实际开发中可以根据编码习惯任选其一使用。
相关调用代码示例如下:
channel.basicNack(deliveryTag,false,true); channel.basicReject(deliveryTag,true);
内容的提问来源于stack exchange,提问作者blue sky
相关产品推荐
相关产品推荐

