Exchanges

简介: Exchanges


Exchanges

(交换机)RabbitMQ 消息传递模型的核心思想是: 生产者生产的消息从不会直接发送到队列。

Exchanges的类型

直接(direct),主题(topic),标题(headers),扇出(fanout),无名(exchange)

通过指定交换机的相同的routingkey,同时将信息发送到两个消费者

Fanout

扇出交换机

优点: 只要是Routingkey相同,可以将一条消息发送给多个队列,然后再由队列发送给指定的消费者(类似于一对多的概念)

通过下面的逻辑图可以清晰的看出,生产者先将消息发送给交换机,由交换机通过指定的Routingkey将消息发送给指定的队列。

Direct

直接交换机

与扇出交换机交换机的区别是,直接交换机每个Routingkey是不一样的,一个Routingkey对应一个队列(类似于一对一的概念)

通过下面的逻辑图可以清晰的看出,生产者先将消息发送给交换机,交换机通过指定的Routingkey将消息发送给指定的队列。

在绑定队列时,指定不同的Routingkey(info和warning)交换机在发送消息时,会匹配到对应的Routingkey将消息发送到MQ队列

//绑定队列
channel.queueBind("console",EXCHANGE_NAME,"info");
channel.queueBind("console",EXCHANGE_NAME,"warning");

Topic

主题交换机

Routingkey必须是一个单词列表,以点号分隔开,比如:aaaa.cdk

:可以代替一个单词(.aaaa.*)

#:可以代表零个或多个单词

在声明队列时去指定Routingkey格式(.orange.,两边必须是两个单词,用.隔开,中间必须是orange,才能满足将数据发送Q1队列中的条件)

//声明队列
String queueName = "Q1";
channel.queueDeclare(queueName,false,false,false,null);
channel.queueBind(queueName,EXCHANGE_NAME,"*.orange.*");

通过上面这个定义Routingkey公式,去定义Routingkey,当Routingkey匹配时,可以实现一个消息发送到多个队列中,也可以实现一个消息发送到一个队列中,也可以实现当前Routingkey没有匹配到任何一个队列,相比扇出交换机和直接交换机扩展性更强,应用比较广泛。

目录
相关文章
|
Linux 异构计算 Windows
Windows操作系统:指定网卡ping连通性
某些时候,板卡上留有两个及以上万兆网口,在没有其他FPGA板卡或者只是想测一下网口或者万兆光模块的通路时,可以通过回环互ping来验证下连通性
4174 0
|
存储 监控 安全
大厂案例 - 腾讯万亿级 Elasticsearch 架构实践1
大厂案例 - 腾讯万亿级 Elasticsearch 架构实践
495 0
|
9月前
|
安全 网络协议 网络安全
当虚拟机出现网络连接问题时,应该先检查Hyper-V的网卡连接配置
当虚拟机出现网络连接问题时,应首先检查Hyper-V的网卡配置。具体步骤包括:确认虚拟机运行状态、检查虚拟交换机类型和物理网卡连接、确保虚拟机网络适配器正确连接到虚拟交换机,并验证网络配置(IP地址等)。常见问题如虚拟交换机配置错误、网络适配器未连接或防火墙阻止连接,可通过重新配置或调整设置解决。必要时重启虚拟机和宿主机,查看事件日志或联系技术支持以进一步排查问题。
|
缓存 前端开发 网络协议
性能优化|几个方法让图片加载更快一些
对电商网页的性能而言,图片优化是至关重要的事情,本文就此探讨了一些简单、可靠的图片优化手段。
|
运维 架构师 云栖大会
2024云栖大会 | 阿里云网络技术Session主题资料和视频回放归档
2024年9月19日-21日,杭州,一年一度的云栖大会如期而至;阿里云飞天洛神云网络作为阿里云计算的连接底座,是飞天云操作系统的核心组件,致力于为上云企业提供高可靠、高性能、高弹性、智能的连接服务。本次云栖,云网络产品线也带来全系列产品升级,以及创新技术重磅解读,围绕增强确定性、深度可观测、高效自动化和敏捷全球化带来技术、产品和服务升级,以及全新的生态伙伴合作构建。
1275 15
|
JavaScript 前端开发
react Or vue中引入animate.css
本文介绍了如何在React或Vue项目中引入animate.css库来使用动画效果,包括通过npm安装或在线链接引入,并展示了如何在React组件和Vue路由过渡中使用动画类。
313 0
|
存储 算法 前端开发
【FPGA学习篇】认识Robei(一)
【FPGA学习篇】认识Robei(一)
428 1
|
Ubuntu Shell
蓝易云 - ubuntu修改默认文件权限umask
以上就是在Ubuntu中修改默认文件权限umask的方法。
321 0
|
存储 缓存 Java
简单介绍一下什么是“工作内存”和“主内存”(JMM中的概念)
该文介绍了Java多线程中`volatile`关键字确保内存可见性的概念。
336 0
|
存储 前端开发 JavaScript
Web前端主题色更换实现方式全解析(二)
Web前端主题色更换实现方式全解析(二)
537 0