美文网首页
4.1rabbitMq消费的拒绝和死信(gold_axe)

4.1rabbitMq消费的拒绝和死信(gold_axe)

作者: 胖达_4b7e | 来源:发表于2020-11-16 00:52 被阅读0次

    消费者有问题不要慌,
    异常里面拒绝, 让重新投递!
    或者还有死信

    消息的拒绝方式

    • Reject
    • Nack
      2个方式都有一个是否消息的重新投递的参数 requeue=false就是不重新入队 而是死掉了

    Reject


    这样最终都会投去其他消费者
    如果就我一个消费者, 这样重新入队重新投递就会死循环了

    有3个消费者, 12正常 3是上图的拒绝重新投递
    10个消息
    最终是
    1:1,4,7,10,9
    2:2,5,8,3,6
    3:
    这是因为, 轮询(拒绝的还是会轮到)+重新投递的入队尾

    Nack


    和上面的不同就是, 多个参数, 可以一次性拒绝前面没应答的

    死信

    一般是 限时订单 用的



    死了的情况:

    • 队列达到最大容量的时候(如果设置最大255来了256第一条死掉),最老的一条
    • 队列过期或者消息本身过期
    • 拒绝不重新入队尾

    队列声明的时候, 传入其作为死信交换器的交换器的名字就行
    死信路由键可以不指定, 用原来的

    队列最大消息数:
    可以手动设
    一般不设, 最大限制就是靠机器性能了

    死信交互器和备用交换器区别

    使用上:
    备用交换器是主交换器声明的时候传名字, 是给交换器的
    死信交互器 是队列声明的时候传名字, 是给队列的

    作用:
    备用交换器: 给生产者的, 主交换器投不出去队列了, 到这来, 没进入队列时的,保证生产者消息不丢失


    死信交互器: 给消费者的, 队列之后的, 保证消费者这边消息不丢失


    相关文章

      网友评论

          本文标题:4.1rabbitMq消费的拒绝和死信(gold_axe)

          本文链接:https://www.haomeiwen.com/subject/gzoobktx.html