【原创】RabbitMQ 之 Negative Acknowledgements(翻译)

Negative Acknowledgements

The AMQP specification defines the basic.reject method that allows clients to reject individual, delivered messages, instructing the broker to either discard them or requeue them. Unfortunately, basic.reject provides no support for negatively acknowledging messages in bulk.
AMQP 标准定义了 basic.reject 方法以允许 client 拒绝单条的、被 deliver 的 message ,拒绝的同时还可以要求 broker 或者丢弃该 message ,或者将 message 做 requeue 。不幸的是,basic.reject 不支持一次对多条 message 进行 reject 。

To solve this, RabbitMQ supports the basic.nack method that provides all the functionality of basic.reject whilst also allowing for bulk processing of messages.
为了解决这个问题,RabbitMQ 实现了扩展方法 basic.nack 来提供一次对多条 message 进行 reject 的功能。

To reject messages in bulk, clients set the multiple flag of the basic.nack method to true. The broker will then reject all unacknowledged, delivered messages up to and including the message specified in the delivery_tag field of the basic.nack method. In this respect, basic.nack complements the bulk acknowledgement semantics of basic.ack.
为了使能一次 reject 多条 message 的功能,client 需要将 basic.nack 中的 multiple 属性设置为 true 。收到 basic.nack 后,broker 会知道,包含 delivery_tag 所对应 message 在内的、所有比该值小的 message 都被拒绝了(除了已经被 ack 的以外)。从这个角度来讲,basic.nack 与 basic.ack 在批量应答 message 的功能上互补。

This example rejects a single message, asking the broker to requeue it:
下面是一个 reject 单条消息,并要求 broker 将其 requeue 的例子:

?


1

2

GetResponse gr = channel.basicGet("some.queue", false);

channel.basicNack(gr.getEnvelope().getDeliveryTag(), false, true);

This example rejects two messages with a single call to the broker (the second argument on  basicNack  is the  multiple  flag):
下面是使用 AMQP 扩展信令中一次性 reject 两条 message 的例子(basicNack 的第二个参数为 multiple 标识 ): 

?


1

2

3

GetResponse gr1 = channel.basicGet("some.queue", false);

GetResponse gr2 = channel.basicGet("some.queue", false);

channel.basicNack(gr2.getEnvelope().getDeliveryTag(), true, true);

时间: 2024-08-04 13:59:32

【原创】RabbitMQ 之 Negative Acknowledgements(翻译)的相关文章

【原创】RabbitMQ 之 Shovel(翻译)

      为了方便工作中使用,对 RabbitMQ 的[Shovel]文档进行了翻译,鉴于自己水平有限,翻译中难免有纰漏产生,如果疑问,欢迎指出探讨.此文以中英对照方式呈现.      官方原文:http://www.rabbitmq.com/shovel.html ==============================  Shovel pluginShovel 插件 The Shovel plugin allows you to configure a number of shovel

【原创】RabbitMQ 之 Plugins(翻译)

      为了方便工作中使用,对 RabbitMQ 的[插件]相关文档进行了翻译,鉴于自己水平有限,翻译中难免有纰漏产生,如果疑问,欢迎指出探讨.此文以中英对照方式呈现.官方原文:http://www.rabbitmq.com/plugins.html ========== 我是分割线 =============  Plugins RabbitMQ supports a variety of plugins. This page documents the plugins that ship

【原创】RabbitMQ 之 Configure(翻译)

configure  ========= 我是分割线 =========  Configuration配置方式  RabbitMQ comes with default built-in settings which will most likely be sufficient for running your RabbitMQ server effectively. If it runs fine, then you probably don't need any configuration

【原创】rabbitmq-service用户手册(翻译)

      为了方便工作中使用,周末抽空对 rabbitmq-service 用户手册进行了翻译,鉴于自己水平有限,翻译中难免有纰漏产生,如果疑问,欢迎指出探讨. 官方原文:http://www.rabbitmq.com/man/rabbitmq-service.man.html ================ 我是分割线 ================== 通过 http://www.rabbitmq.com/manpages.html 可知 RabbitMQ 有5个 General Co

【原创】rabbitmq-echopid用户手册(翻译)

      为了方便工作中使用,周末抽空对 rabbitmq-echopid 用户手册进行了翻译,鉴于自己水平有限,翻译中难免有纰漏产生,如果疑问,欢迎指出探讨. 官方原文:http://www.rabbitmq.com/man/rabbitmq-echopid.man.html ================= 我是分割线 ================== 通过 http://www.rabbitmq.com/manpages.html 可知 RabbitMQ 有5个 General C

【原创】rabbitmq-plugins用户手册(翻译)

      为了方便工作中使用,周末抽空对 rabbitmq-plugins 用户手册进行了翻译,鉴于自己水平有限,翻译中难免有纰漏产生,如果疑问,欢迎指出探讨. 官方原文:http://www.rabbitmq.com/man/rabbitmq-plugins.1.man.html ======== 我是分割线 ========== 通过 http://www.rabbitmq.com/manpages.html  可知 RabbitMQ 有5个 General Command : 1. ra

【原创】rabbitmq-server用户手册(翻译)

      为了方便工作中使用,周末抽空对rabbitmq-server用户手册进行了翻译,鉴于自己水平有限,翻译中难免有纰漏产生,如果疑问,欢迎指出探讨. 官方原文:http://www.rabbitmq.com/man/rabbitmq-server.1.man.html ================= 我是分割线 ================== 通过 http://www.rabbitmq.com/manpages.html 可知 RabbitMQ 有5个 General Com

【原创】RabbitMQ 的 shovel 插件使用

      从之前的两篇文章< [原创]RabbitMQ 之 Shovel(翻译) >和< [原创]RabbitMQ 之 Dynamic Shovel(翻译) >中,我们已经知道 shovel 插件的使用存在 static 和 dynamic 两种形式,其主要差异如下  Static Shovels Dynamic Shovels 基于 broker 的配置文件进行定义 基于 broker 的 parameter 参数进行定义 Require a restart of the ho

巧用方法使网站增加原创文章提升网站排名

近日发现很多网站的排名下降,大家也都看过http://www.aliyun.com/zixun/aggregation/8612.html">网站排名下降的原因分析文章,但是很少有说明网站在网络推广中具体的解决方案,今天笔记就来对于这些问题,一一向各位站长朋友们分享下笔者的解决方法. 关键词排名下降原因 一.关键词竞争激烈 从关键词的排名来看,权重较高的网站排名一定是靠前的,但是有些网站却不怎么样,而关键词却很稳定,这主要说明一个在网站推广时,拥有高质量的原创文章,网站权重和关键词仅仅相连