• 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 :表示只要有键值对匹配就能接受到消息

    请添加图片描述

  • 相关阅读:
    Python3 File(文件) 方法
    刷题记录:牛客NC16746神奇盘子
    C++ 多级继承与多重继承:代码组织与灵活性的平衡
    函数题14 习题6-3 使用函数输出指定范围内的完数 浙大版《C语言程序设计(第4版)》题目集
    app小程序手机端Python爬虫实战11实现自动化登录考研帮app并滑动资讯信息
    保护香港服务器的方法
    2023,DaaS驶入“AI大航海时代”
    实现Object.create()
    多线程&并发篇---第十一篇
    数据结构:二叉搜索树
  • 原文地址:https://blog.csdn.net/weixin_43416686/article/details/126014181