• Rabbitmq的四种交换机类型


    Rabbitmq的四种交换机类型

    Rabbitmq共有四种类型的交换机,分别为Direct Exchange(直连交换机);Fanout Exchange(扇出交换机);Topic Exchange(主题交换机);Header Exchange(头交换机)。
    
    • 1

    Direct Exchange(直连交换机)

    直连交换机的特点是消息队列通过routingKey与交换机进行绑定,相同的routingKey会获得相同的消息。一个队列可以通过多个不同的routingKey与交换机进行绑定。不同的队列也可以通过相同的routingKey绑定交换机。

    请添加图片描述

    Fanout Exchange(扇出交换机)

    扇出交换机的特点是类似于广播,只要队列与该类型的交换机绑定,所有发送到该交换机的信息都会被转发到所有与之绑定的队列,与routingKey无关。

    请添加图片描述

    Topic Exchange(主题交换机)

    应用范围最广的交换机类型,消息队列通过消息主题与交换机绑定。一个队列可以通过多个主题与交换机绑定,多个消息队列也可以通过相同消息主题和交换机绑定。并且可以通过通配符(*或者#)进行多个消息主题的适配。

    消息主题的一般格式为xxx.xxx.xxx(x为英文字母,每个单词用英文句号隔开)。*通配符可以适配一个单词,#可以适配零个或者多个单词。

    通配符适配如下:*.xxx.#。此主题可以适配xxx前面只有一个单词后面有零个或者多个单词的所有消息主题。

    请添加图片描述

    Header Exchenge(头交换机)

    与routingKey无关,匹配机制是匹配消息头中的属性信息。在绑定消息队列与交换机之前声明一个map键值对,通过这个map对象实现消息队列和交换机的绑定。当消息发送到RabbitMQ时会取到该消息的headers与Exchange绑定时指定的键值对进行匹配;如果完全匹配则消息会路由到该队列,否则不会路由到该队列。

    匹配规则x-match有下列两种类型:

    x-match = all :表示所有的键值对都匹配才能接受到消息

    x-match = any :表示只要有键值对匹配就能接受到消息

    请添加图片描述

  • 相关阅读:
    【MySQL】在CentOS环境下安装MySQL
    Qt中QTimer定时器的用法
    【PyTorch 攻略】(6-7/7)
    Java入门 面向对象(接口) (第二十一天)
    Java知识梳理 第七章 面向对象编程
    02--大数据Hadoop集群实战
    RK3568多千兆网口安卓视频控制器全国产方案
    编译原理课程实践——实现一个初等函数运算语言的解释器或编译器
    K8S集群再搭建
    【51单片机】9-定时器和计数器
  • 原文地址:https://blog.csdn.net/weixin_43416686/article/details/126014181