RabbitMQ中有哪几种交换机类型?

devtools/2025/1/18 2:28:54/

大家好,我是锋哥。今天分享关于【RabbitMQ中有哪几种交换机类型?】面试题。希望对大家有帮助;

RabbitMQ中有哪几种交换机类型?

1000道 互联网大厂Java工程师 精选面试题-Java资源分享网

在RabbitMQ中,交换机(Exchange)负责接收消息并根据规则将其路由到一个或多个队列中。RabbitMQ支持以下几种主要类型的交换机,每种交换机有不同的路由行为:

  1. Direct Exchange(直接交换机)

    • 路由方式:消息通过指定的路由键(Routing Key)直接传递到队列中。只有当队列绑定的路由键与消息的路由键完全匹配时,消息才会被转发到该队列。
    • 应用场景:适用于简单的场景,其中消息需要根据明确的路由键传递。
    • 示例:假设有一个队列绑定了路由键 info,只有路由键为 info 的消息才会传递到这个队列。
  2. Fanout Exchange(扇形交换机)

    • 路由方式:消息会被广播到所有与该交换机绑定的队列中,无论路由键是什么。路由键在此类型的交换机中不起作用。
    • 应用场景:适用于需要将消息广播给所有消费者的场景。
    • 示例:当有多个队列都需要接收同样的消息时,Fanout Exchange 会将消息推送到所有绑定的队列。
  3. Topic Exchange(主题交换机)

    • 路由方式:消息根据路由键的模式匹配规则路由到队列。路由键使用点号(.)分隔的多个词,队列可以通过绑定特定的模式(例如 *.error 或 kern.*)来接收符合模式的消息。
    • 应用场景:适用于消息需要根据复杂的模式进行路由的场景,尤其是在多种类别或标签的情况下。
    • 示例:假设有一个队列绑定了路由键 log.error,那么所有发送到主题交换机且路由键匹配 log.error 的消息都会路由到该队列。
  4. Headers Exchange(头交换机)

    • 路由方式:使用消息的头部(Header)信息而不是路由键来进行路由。队列可以根据绑定时指定的头部属性来选择性地接收消息。
    • 应用场景:适用于消息路由需要基于多个属性的组合匹配的场景。
    • 示例:当一个队列绑定了某些头部属性(例如 content-type=application/json 和 status=active),只有符合这些头部条件的消息才会被路由到该队列。

总结:

  • Direct Exchange:通过精确的路由键匹配消息。
  • Fanout Exchange:广播消息到所有绑定的队列。
  • Topic Exchange:根据路由键模式(通配符)进行消息路由。
  • Headers Exchange:基于消息头部信息进行路由。

这些交换机类型允许根据不同的业务需求,灵活地控制消息的路由和分发。


http://www.ppmy.cn/devtools/151434.html

相关文章

【人工智能】大语言模型的微调:让模型更贴近你的业务需求

大语言模型的微调:让模型更贴近你的业务需求 随着大语言模型(LLM, Large Language Model)如 GPT-4、BERT 和 T5 等的广泛应用,模型的微调(Fine-tuning)技术成为实现领域专属任务的重要手段。通过微调&…

salesforce在opportunity的opportunity products页面增加一个按钮,可以批量删除products

在 Salesforce 中,如果想在「Opportunity > Opportunity Products」列表页面上增加一个“批量删除产品”的按钮,并实现勾选多条产品后统一删除,大体可以考虑以下几种实现思路。由于环境和版本(Classic / Lightning)…

第三章:HTML的字符实体,meta标签以及全局属性

目录 一、字符实体 二、meta元信息 三、全局属性 四、总结 一、字符实体 在 HTML 中&#xff0c;某些字符是预留的&#xff0c;不能直接使用。例如&#xff0c;小于号&#xff08;<&#xff09;和大于号&#xff08;>&#xff09;会被浏览器误认为是标签&#xff0c…

数据库(MySQL)练习

数据库&#xff08;MySQL&#xff09;练习 一、练习1.15练习1.16练习 二、注意事项2.1 第四天 一、练习 1.15练习 win11安装配置MySQL超详细教程: https://baijiahao.baidu.com/s?id1786910666566008458&wfrspider&forpc 准备工作&#xff1a; mysql -uroot -p #以…

Android 播放SMB共享视频

表面上看MediaPlayer只能播放本地和http协议视频。没有直接支持smb://协议。那还能播放smb视频呢&#xff1f;也可以的&#xff01; MediaPlayer有一个方法叫&#xff1a;setDataSource(MediaDataSource)。 /*** Sets the data source (MediaDataSource) to use.** param data…

Vue3 Element-Plus el-tree 右键菜单组件

参考代码&#xff1a;实现Vue3Element-Plus(tree、table)右键菜单组件 这篇文章的代码确实能用&#xff0c;但是存在错误&#xff0c;修正后的代码&#xff1a; <template><div style"text-align: right"><el-icon size"12" color"#…

网络学习记录5

二、学习网络知识&#xff1a; 1、透传&#xff1a; ①“透传”指的是数据在传输过程中不被交换机或其他网络设备解析、修改或处理&#xff0c;而是直接从一个端口传输到另一个端口。这种传输方式保持了数据的原始性和完整性&#xff0c;常用于需要高速、低延迟的数据传输场景…

golang 在线词典

前言 输入一个英语单词&#xff0c;返回它的发音&#xff0c;解释&#xff0c;同义词&#xff0c;反义词&#xff0c;以及例子 使用的是免费翻译网站&#xff0c;彩云小译 注意&#xff0c;彩云小译更新&#xff0c;博主并没有找到dict响应&#xff0c;但是写这个却能调用 步骤…