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

2020-11-16  本文已影响0人  胖达_4b7e

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

消息的拒绝方式

Reject


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

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

Nack


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

死信

一般是 限时订单 用的



死了的情况:


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

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

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

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

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


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


上一篇下一篇

猜你喜欢

热点阅读