RabbitMQ的备份交换器

一:介绍

生产者将生产的消息发送到交换器,如果由于路由错误不能到达指定队列,那么就会被发送到备份交换器,进而路由到备份队列存储起来,以便供以后消费处理;这样做可以保证未被路由的消息不会丢失。其实保证消息不会丢失还可以通过设置mandatory参数为true,让生产者添加ReturnListener监听器的编程逻辑,来接收未被路由的消息;但是这样做生产者的代码会更复杂,所以我们可以使用备份交换器来处理这类消息。

二:示意图

三:备份交换器类型

备份交换器和普通交换器其实一样,为了方便使用,建议类型设置为 fanout 类型;也可以设置direct或者topic,但是需要注意的是:消息被重新发送到备份交换器时的路由键和从生产者发出的路由键是一样的,所以备份交换器和备份队列的绑定键要匹配上消息发出时的路由键;其实我们设置备份交换器的目的就是为了在消息的路由键没有匹配上时来接收这类“无家可归”的消息,所以没必要将类型设置为direct或者topic。

四:备份交换器的特殊情况

(1)设置的备份交换器不存在

(2)备份交换器没有绑定任何队列

(3)备份交换器没有任何匹配的队列

以上三种情况,客户端和服务端都不会出现异常,“无家可归”的消息会丢失。

(4)如果配置了 mandatory 参数和备份交换器一起用,那么参数无效。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值