zoukankan      html  css  js  c++  java
  • RabbitMQ的备份交换器

    一:介绍

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

    二:示意图

    三:备份交换器类型

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

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

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

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

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

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

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

  • 相关阅读:
    圣诞放长假了
    设计模式Top10排行榜
    成长的烦恼
    小三的故事发家篇
    《家庭财务总管》升级(1.0.0.2)
    紧急项目处理方法
    隐身大法,使民无知
    如何维护自己文章的版权
    在深度学习的视觉VISION领域数据预处理的魔法常数magic constant、黄金数值: mean=[0.485, 0.456, 0.406],std=[0.229, 0.224, 0.225]
    ImageNet数据集下载
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302422.html
Copyright © 2011-2022 走看看