• 消息的拒绝


    消息的拒绝

    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、备用交换器是在声明主交换器时发生联系,而死信交换器则声明队列时发生联系。

  • 相关阅读:
    url-pattern / /*匹配
    velocity入门
    配置eclipse插件
    Myeclipse 2014 破解
    Eclipse kepler 安装 Dynamic Web Project差距WTP
    Errors running builder 'Faceted Project Validation Builder' on project
    JSF web.xml的各类参数属性配置
    bpm 学习笔记一
    love is ... ...
    .sh_history文件的管理机制
  • 原文地址:https://www.cnblogs.com/Soy-technology/p/11570224.html
Copyright © 2020-2023  润新知