当前位置: 首页 > java >正文

RabbitMQ fanout交换机

为什么要用交换机?

交换机用来路由消息。如果直发队列,这个消息就被处理消失了,那别的队列也需要这个消息怎么办?那就要用到交换机

交换机类型

1,fanout:广播

特点

广播所有消息​​:将消息发送到所有绑定到该交换机的队列(忽略 routing_key)。

​无过滤​​:所有消费者都会收到相同的消息副本。

适用场景​

系统通知(如全局公告)。

事件广播(如用户注册后触发邮件、短信、积分发放)。

控制台定义好交换机(交换机类型)、队列。

绑定交换机和队列。

java写代码消息发送者发送消息到交换机。

java写代码实现消费者,绑定监听的队列。

消息发送者将消息发送到交换机,交换机路由消息到各个队列,消费者处理队列里的消息。

2,Direct:定向

特点​

队列交换机约定一个(暗号)routing_key

交换机里面有个记录表,记录了各个队列的 routing_key (队列也可以绑定多个不同key,不同队列也可以绑定相同的routing_key

消息发送者发消息时,指定消息的routing_key 

​交换机 根据 发送者发来的 routing_key 在自己的表里找到相同的routing_key 的队列

​一对一或一对多​​:可通过多个队列绑定相同的 routing_key 实现多消费者接收。

​适用场景​

分类任务处理(如将 error 日志发送到错误处理队列)。

订单状态更新(如 order.paid 路由到支付服务)。

3,Topic:话题(推荐使用

特点​

​通配符匹配 routing_key​:

*(星号):匹配一个单词(如 order.* 可匹配 order.paid)。

#(井号):匹配零或多个单词(如 order.# 可匹配 order.paid.2023)。

​灵活路由​​:适合需要多维度分类的场景。

​适用场景​

多级日志分类(如 app.errorapp.warning)。

复杂事件路由(如 user.signup.emailuser.signup.sms)。

http://www.xdnf.cn/news/12722.html

相关文章:

  • 国防科技大学计算机基础慕课课堂学习笔记
  • Unity中的Mathf.Clamp01
  • 6.5 自学测试 数据库基础 Day5
  • 利用frp和腾讯云服务器将内网暴露至外网(内网穿透)
  • 【MATLAB代码】基于MCC(最大相关熵)的EKF,一维滤波,用于解决观测噪声的异常|附完整代码,订阅专栏后可直接查看
  • 模拟法解题的思路与算法分享
  • [GitHub] 优秀开源项目
  • python训练营打卡第47天
  • 27、基于map实现的简易kv数据库
  • AIGC的产品设计演进:从工具到协作者
  • 黑马Sting四道练习题
  • 《Progressive Transformers for End-to-End Sign Language Production》复现报告
  • windows使用脚本杀死python进程
  • STM32学习之I2C(理论篇)
  • Addressable-配置相关
  • 操作系统:分页存储管理方式(精简版、含例题)
  • 源码级拆解:如何搭建高并发「数字药店+医保购药」一体化平台?
  • 6.7 打卡
  • AtCoder Beginner Contest 408 D-F 题解
  • JDK8安装与配置
  • 探索Python融合地学:斗之气七段(运算符)
  • 冰箱智能化升级方案:WT3000A离在线AI语音模组赋能AI在线对话功能
  • Cline核心说明文档
  • 基于Java的离散数学题库系统设计与实现:附完整源码与论文
  • mysql整体架构
  • 在 Windows 11 或 10 上将 Visual Studio Code 添加到系统路径
  • C++学习-入门到精通【15】异常处理深入剖析
  • (附实例代码及图示)混合策略实现 doc-doc 对称检索
  • FreeRTOS任务调度过程vTaskStartScheduler()任务设计和划分
  • redis分布式锁