【rabbitMQ】Exchanges交换机

上一篇:springboot整合rabbitMQ模拟简单收发消息

https://blog.csdn.net/m0_67930426/article/details/134904766

本篇代码基于上一篇继续写

目录

Fanout 交换机

1. add queue

2. add Exchange

3.绑定队列

Direct 交换机

1. add queue

 2. add Exchange

3.绑定队列,并设置Routing key 

Topic 交换机

1.add queue

2.add Exchange

3.绑定队列


Fanout 交换机

fanout exchange 会将接收到的消息广播到每一个跟其绑定的queue

1. add queue

2. add Exchange

3.绑定队列

 

 消费者监听队列

 @RabbitListener(queues = "fanout.queue1")
    public void eee(String msg){
        System.out.println("消费者e收到了fanout.queue1的消息:【"+msg+"】");
    }

    @RabbitListener(queues = "fanout.queue2")
    public void fff(String msg){
        System.err.println("消费者f收到了fanout.queue2的消息:【"+msg+"】");
    }
  

 

 单元测试模拟业务发送消息

 @Test
    void Test3Send(){
        String ExchangeName = "aaa.fanout";
        String msg = "rabbitMQ<消息队列>";
        rabbitTemplate.convertAndSend(ExchangeName,null, msg);
    }

 

Direct 交换机

Direct Exchange 会将接收的消息根据规则路由到指定的queue

1. add queue

 2. add Exchange

 

3.绑定队列,并设置Routing key 

 

  消费者监听队列

 @RabbitListener(queues = "direct.queue1")
    public void ggg(String msg){
        System.out.println("消费者g收到了fanout.queue1的消息:【"+msg+"】");
    }

    @RabbitListener(queues = "direct.queue2")
    public void hhh(String msg){
        System.err.println("消费者h收到了fanout.queue2的消息:【"+msg+"】");
    }

 单元测试模拟业务发送消息

 @Test
    void Test3Send() {
        String ExchangeName = "bbb.direct";
        String msg = "rabbitMQ<消息队列>";
        rabbitTemplate.convertAndSend(ExchangeName,"red" , msg);
    }

Routing key:  " red "

预期结果是,两个消费者都收到了消息

 

将Routing key 的值改为blue 

 

预期结果,只有消费者g接收到了消息

 

Topic 交换机

1.add queue

2.add Exchange

3.绑定队列

 

 

消费者监听队列 

 @RabbitListener(queues = "topic.queue1")
    public void jjj(String msg){
        System.out.println("消费者j收到了fanout.queue1的消息:【"+msg+"】");
    }

    @RabbitListener(queues = "topic.queue2")
    public void kkk(String msg){
        System.err.println("消费者k收到了fanout.queue2的消息:【"+msg+"】");
    }

 单元测试模拟业务发送消息


    @Test
    void Test3Send() {
        String ExchangeName = "ccc.topic";
        String msg = "rabbitMQ";
        rabbitTemplate.convertAndSend(ExchangeName,"zhejiang.new" , msg);
    }

Routing key : " zhejiang.new " 

预期结果是k收到消息

 

Routing  key: " china.new "

预期结果,两个消费者都接收到了消息

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/246015.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Day60力扣打卡

打卡记录 1682分了记录下&#xff0c;希望下回能突破1700捏。作为一个菜鸟&#xff0c;知道自己很菜&#xff0c;一步步走到现在还是很开心的&#xff0c;从以前的周赛稳定1题到稳定2题&#xff0c;到现在的时有时无的3题。每次刷题都期盼有所长进&#xff0c;虽然更多的时候收…

如何看待「前端已死论」?

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

【深度学习目标检测】四、基于深度学习的抽烟识别(python,yolov8)

YOLOv8是一种物体检测算法&#xff0c;是YOLO系列算法的最新版本。 YOLO&#xff08;You Only Look Once&#xff09;是一种实时物体检测算法&#xff0c;其优势在于快速且准确的检测结果。YOLOv8在之前的版本基础上进行了一系列改进和优化&#xff0c;提高了检测速度和准确性。…

MacOS多屏状态栏位置不固定,程序坞不小心跑到副屏

目录 方式一&#xff1a;通过系统设置方式二&#xff1a;鼠标切换 MacOS多屏状态栏位置不固定&#xff0c;程序坞不小心跑到副屏 方式一&#xff1a;通过系统设置 先切换到左边 再切换到底部 就能回到主屏了 方式二&#xff1a;鼠标切换 我的两个屏幕放置位置如下 鼠标在…

【三视图】咒语 生成人物

revAnimated_v122.safetensors 杰作&#xff0c;最佳质量&#xff0c;角色设计&#xff0c;三视图&#xff0c;前视图&#xff0c;侧视图&#xff0c;后视觉&#xff0c;呆萌&#xff0c;可爱&#xff0c;简单的背景&#xff0c; (badhandv4:1.4),ng_deepnegative_v1_75t,negat…

OpenCV-Python15:图像阈值处理

目录 目标 图像阈值及分割算法介绍 简单阈值算法 自适应阈值算法 Otsus 二值化算法 Otsus 二值化原理 目标 通过本文你将学到图像二值化、简单阈值处理、自适应阈值、Otsus 二值化等。将学习的函数有cv2.threshold,cv2.adaptiveThreshold 等。 图像阈值及分割算法介…

实验06:VLAN配置

1.实验目的&#xff1a; VLAN&#xff08;Virtual Local Area Network&#xff09;是一种通过逻辑方式而不是物理方式划分局域网的技术&#xff0c;可以提高网络性能、安全性和管理效率。VLAN的划分方法有基于端口、基于MAC地址、基于协议和基于IP组播等。VLAN之间的通信需要路…

HPM6750系列--第七篇 Visual Studio Code使用openocd调试查看外设信息

一、目的 在《HPM6750系列--第四篇 搭建Visual Studio Code开发调试环境》我们已经手把手指导大家如何在visual studio code中进行开发&#xff0c;包括编译调试等步骤以及相关配置文件。 但是在实际调试时发现找不到芯片寄存器实时显示的窗口&#xff0c;本篇主要讲解如何实现…

N通道沟槽电源 场效应管 FMB30H100SL

亿胜盈科FMB30H100SL是一款N通道沟槽电源的场效应管&#xff08;MOS管&#xff09;&#xff0c;FMB30H100SL封装为&#xff1a;TOLL4-6R。

风速预测(二)基于Pytorch的EMD-LSTM模型

目录 前言 1 风速数据EMD分解与可视化 1.1 导入数据 1.2 EMD分解 2 数据集制作与预处理 2.1 先划分数据集&#xff0c;按照8&#xff1a;2划分训练集和测试集 2.2 设置滑动窗口大小为7&#xff0c;制作数据集 3 基于Pytorch的EMD-LSTM模型预测 3.1 数据加载&#xff0…

Jenkins 添加节点报错

报错日志 Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.UnsupportedClassVersionError: hudson/remoting/Launcher has been compiled by a more recent version of the Java Runtime (cl…

飞天使-docker知识点5-资源限制与容器的不同状态

文章目录 cpu和内存的限制内存限制的部分参数容器的不同状态docker images 的分层docker registry制作镜像 cpu和内存的限制 默认情况下&#xff0c;容器没有资源限制&#xff0c;可以使用主机内核调度程序允许的尽可能多的 给定资源&#xff0c;Docker 提供了控制容器可以限制…

app分发平台哪个好点?手机app应用内测分发平台支持负载均衡的重要性

随着互联网的快速发展&#xff0c;内测分发平台扮演着越来越重要的角色。而在现代应用程序的开发和运营过程中&#xff0c;负载均衡技术是不可或缺的一部分。内测分发平台支持负载均衡对于提高系统的稳定性、可靠性和性能至关重要。那么什么是负载均衡又有哪些重要性。 图片来源…

通俗理解什么是 LSTM 神经网络

大家好啊&#xff0c;我是董董灿。 刚开始做程序开发时&#xff0c;在公司提交代码前&#xff0c;都需要让大佬们 review(评审)&#xff0c;大佬们看完&#xff0c;总会在评论区打出一串"LGTM"。 当时作为小白的我&#xff0c;天真地以为大佬觉得我提交的代码还不错…

Stable Diffusion 源码解析(1)

参考1&#xff1a;https://blog.csdn.net/Eric_1993/article/details/129393890 参考2&#xff1a;https://zhuanlan.zhihu.com/p/613337342 1.StableDiffusion基本原理1.1 UNetModel、FrozenCLIP 模型1.2 DDPM、DDIM、PLMS算法 2. Runwayml SD 源码2.1 Img2Img Pipeline2.2 DD…

论文笔记:详解图注意力网络(GAT)

整理了GAT&#xff08; ICLR2018 Graph Attention Network&#xff09;论文的阅读笔记 背景图注意力网络的构建模块与其他模型对比实验 背景 图神经网络的任务可以分为直推式(Transductive)学习与归纳(Inductive)学习&#xff1a; Inductive learning&#xff0c;翻译成中文可以…

C++项目引入依赖_例jsoncpp(MAC/CLion)

1、git clone jsoncpp到本地 jsoncpp github地址&#xff1a;https://github.com/open-source-parsers/jsoncpp/tree/master 2、编译生成 lib 文件 进入jsoncpp文件目录 # 进入 jsoncpp 目录&#xff0c;创建一个新的子目录来存放编译输出&#xff1a; mkdir build &&a…

试以单链表为存储结构实现简单选择排序的算法

简单选择排序&#xff0c;就是每趟把剩余元素最小或者最大的选出来排到前面 这道题值得推敲的是&#xff0c;p作为一个链表结点也是可以作为for循环的初始条件和判断条件的&#xff0c;至于查找到最小值之后&#xff0c;可以把两者的数值进行一个交换&#xff0c;就不用删结点…

SAP ABAP 面试题交流

1.列举AT事件并说明其作用&#xff0c;AT事件中的工作区有何不同&#xff1f; AT FIRST 循环loop中执行第一条数据 AT LAST 循环loop中执行最后一条数据 AT NEW 循环loop中指定字段&#xff08;包含指定字段&#xff09;记录与上一条记录不一致数据执行 AT END OF 循环loo…

计算机网络:物理层(奈氏准则和香农定理,含例题)

带你速通计算机网络期末 文章目录 一、码元和带宽 1、什么是码元 2、数字通信系统数据传输速率的两种表示方法 2.1、码元传输速率 2.2、信息传输速率 3、例题 3.1、例题1 3.2、例题2 4、带宽 二、奈氏准则&#xff08;奈奎斯特定理&#xff09; 1、奈氏准则简介 2、…