zoukankan      html  css  js  c++  java
  • 消息的拒绝

    消息的拒绝

    Reject  Nack

      消息确认可以让 RabbitMQ知道消费者已经接受并处理完消息。但是如果消息本身或者消息的处理过程出现问题怎么办?需要一种机制,通知RabbitMQ,这个消息,我无法处理,请让别的消费者处理。这里就有两种机制,Reject和 Nack。

      Reject在拒绝消息时,可以使用 requeue标识,告诉 RabbitMQ 是否需要重新发送给别的消费者。不重新发送,一般这个消息就会被 RabbitMQ丢弃。Reject一次只能拒绝一条消息。

      Nack则可以一次性拒绝多个消息。这是 RabbitMQ对 AMQP规范的一个扩展。

        

      通过 RejectRequeuConsumer可以看到当 requeue参数设置为 true时,消息发生了重新投递。

    死信交换器 DLX

      RabbitMQ对 AMQP规范的一个扩展。被投递消息被拒绝后的一个可选行为,往往用在对问题消息的诊断上。

     

      消息变成死信一般是以下几种情况:

    • ·消息被拒绝,并且设置 requeue 参数为 false
    • ·消息过期
    • ·队列达到最大长度

      死信交换器仍然只是一个普通的交换器,创建时并没有特别要求和操作。在创建队列的时候,声明该交换器将用作保存被拒绝的消息即可,相关的参数是 x-dead-letter-exchange。

     

      

    和备用交换器的区别

      1、备用交换器是主交换器无法路由消息,那么消息将被路由到这个新的备用交换器,而死信交换器则是接收过期或者被拒绝的消息。

      2、备用交换器是在声明主交换器时发生联系,而死信交换器则声明队列时发生联系。

  • 相关阅读:
    mac上eclipse上运行word count
    利用hadoop自带程序运行wordcount
    mac上eclipse上配置hadoop
    在mac上安装hadoop伪分布式
    0到N数其中三个数的全排列
    【设计模式】【应用】使用模板方法设计模式、策略模式 处理DAO中的增删改查
    【设计模式】【行为型模式】策略模式
    【设计模式】【行为型模式】模板模式
    properties文件操作
    File相关操作
  • 原文地址:https://www.cnblogs.com/Soy-technology/p/11570224.html
Copyright © 2011-2022 走看看