【RabbitMQ】03-交换机

1. 交换机

在这里插入图片描述

2. Fanout交换机

广播。生产者向exchange发消息

@SpringBootTest
public class SpringAmqpTest {@Autowiredpublic RabbitTemplate rabbitTemplate;@Testvoid testSimple() {String exchangName = "hmall.fabout";rabbitTemplate.convertAndSend(exchangName, null,"hello, w");}
}

消费者监听exchange绑定的队列即可。

@Component
@Slf4j
public class SpringAmqbListener {@AutowiredRabbitTemplate rabbitTemplate;@RabbitListener(queues = "simple.queue")public void Lister(String msg) {log.info(msg);}@RabbitListener(queues = "fanout.q1")public void Lister1(String msg) {System.out.println("q1:" + msg);}@RabbitListener(queues = "fanout.q2")public void Lister2(String msg) {System.out.println("q2:" + msg);}
}

3. Direct 直连交换机

在这里插入图片描述
生产者,需要指定exchange和key

@SpringBootTest
public class SpringAmqpTest {@Autowiredpublic RabbitTemplate rabbitTemplate;@Testvoid testSimple() {String exchangName = "hmall.direct";rabbitTemplate.convertAndSend(exchangName, "yellow", "hello, w");}
}

消费者指定对列

@Component
@Slf4j
public class SpringAmqbListener {@AutowiredRabbitTemplate rabbitTemplate;@RabbitListener(queues = "simple.queue")public void Lister(String msg) {log.info(msg);}@RabbitListener(queues = "direct.q1")public void Lister1(String msg) {System.out.println("q1:" + msg);}@RabbitListener(queues = "direct.q2")public void Lister2(String msg) {System.out.println("q2:" + msg);}@RabbitListener(queues = "direct.q3")public void Lister3(String msg) {System.out.println("q3" + msg);}
}

4. Topic交换机

在这里插入图片描述
生产者

@SpringBootTest
public class SpringAmqpTest {@Autowiredpublic RabbitTemplate rabbitTemplate;@Testvoid testSimple() {String exchangName = "hmall.topic";rabbitTemplate.convertAndSend(exchangName, "china.news", "hello, w");}
}

消费者

    @RabbitListener(queues = "topic.q1")public void topicLister1(String msg) {System.out.println("q1:" + msg);}@RabbitListener(queues = "topic.q2")public void topicLister2(String msg) {System.out.println("q2:" + msg);}

5. 代码生成交换机

在这里插入图片描述
基于注解绑定,在消费者的@Component中写。

 	@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "direct.queue1"),exchange = @Exchange(name = "hmall.direct", type = ExchangeTypes.DIRECT),key = {"red", "yellow"}))public void topicLister1(String msg) {System.out.println("q1:" + msg);}@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "direct.queue2"),exchange = @Exchange(name = "hmall.direct", type = ExchangeTypes.DIRECT),key = {"red", "yellow"}))public void topicLister2(String msg) {System.out.println("q2:" + msg);}

6. 修改默认序列化器

  1. 依赖
        <!--jackson--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId></dependency>
  1. 注册为Bean
    @Beanpublic MessageConverter messageConverter() {return new Jackson2JsonMessageConverter();}

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Java基础-集合

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 前言 一、Java集合框架概述 二、Collection接口及其实现 2.1 Collection接口 2.2 List接口及其实现 …

K8S详解(5万字详细教程)

目录 ​编辑 一、集群管理命令 二、命名空间 1. 获取命名空间列表 2. 创建命名空间 3. 删除命名空间 4. 查看命名空间详情 三、Pod 1. Pod概述 2. Pod相位状态 3. 管理命令 3.1 获取命名空间下容器(pod)列表 3.2 查看pod的详细信息 3.3 创建 && 运行 3.4 …

AI驱动的图像文本提取【Llama 3.2-Vision】

本月初&#xff0c;我尝试了书籍封面识别&#xff0c;将 YOLOv10、EasyOCR 和 Llama 3 结合成一个无缝工作流程。结果如何&#xff1f;我自信地从书籍封面中提取标题和作者&#xff0c;就像这是我的新超能力一样。你可以在这篇文章中查看这一旅程&#xff1a;使用自定义 Yolov1…

打造你的Pokemon大师:深度学习多分类模型构建与本地部署全攻略

打造你的Pokemon大师&#xff1a;深度学习多分类模型构建与本地部署全攻略 引言 在这篇文章中&#xff0c;我将分享如何从头构建一个用于多分类任务的神经网络&#xff0c;并将其部署到本地环境。这是一个实践性质的教程&#xff0c;适合那些对深度学习模型部署感兴趣的初学者…

TikTok云手机怎样进行TikTok矩阵运营?

由于地区限制&#xff0c;国内无法直接访问TikTok。本文将介绍如何借助海外版TikTok云手机实现多账号管理&#xff0c;也就是矩阵运营&#xff0c;并探讨这种方式对提升工作效率的优势。 常见的多账号管理方式 许多人尝试通过VPN访问TikTok&#xff0c;但通常会遇到连接不稳定、…

光控资本:进入超级事件周 A股将如何运行

从国内来看&#xff0c;近期最重要的作业无疑是十四届全国人大常委会第十二次会议&#xff0c;该会议将于11月4日至8日在北京举办。商场广泛预期&#xff0c;本次会议将审议上调政府债务限额的议题&#xff0c;并或许推进新一轮的债务化解作业。这些方针意向有望为商场带来新的…

D59【python 接口自动化学习】- python基础之异常

day59 捕获异常常见问题 学习日期&#xff1a;20241105 学习目标&#xff1a;异常 -- 75 避坑指南&#xff1a;编写捕获异常程序时经常出现的问题 学习笔记&#xff1a; 捕获位置设置不当 设置范围不当 捕获处理设置不当 嵌套try-except语法错误 总结 位置&#xff0c;范围…

“高效开发之路:用Spring MVC构建健壮的企业级应用”

一、SpringMVC框架概念&#xff1a; &#xff08;一&#xff09;概述 SpringMVC是Spring框架的一个模块&#xff0c;Spring和SpringMVC无需中间整合层整合。该模块是一个基于MVC的web框架。 作用&#xff1a;只要需要前后端通信&#xff0c;就需要springMVC帮我完成&#xff…

Unity使用Spine导致设备发烫

spine制作过程中&#xff0c;美术同学使用裁剪技术 将一个特效文件做固定范围显示&#xff0c;实际上非常消耗CPU算力。 解决办法&#xff1a; 交给程序来实现裁剪&#xff0c;只要加Mask组件即可

if-else语句+例题练手(2)

前面我们讲过循环语句的for、while、do-while的使用&#xff0c;即组成C语言中的循环结构&#xff0c;而除了循环其实还有顺序和选择&#xff0c;顺序结构就是顺着程序中的代码一行一行执行下去&#xff0c;而选择为分支结构&#xff0c;有if语句和switch语句,今天先讲if语句和…

HTTP服务器测试与优化

目录 1 搭建一个基础的HTTP服务器 2 长连接测试 3 测试错误报文的处理 4 测试业务处理耗时超过超时时间的处理 5 测试同时收到多条正常请求 6 大文件传输测试 7 压力测试 1 搭建一个基础的HTTP服务器 在这个部分&#xff0c;我们需要搭建一个最简单的HTTP服务器&#xf…

【spring】Cookie和Session的设置与获取(@CookieValue()和@SessionAttribute())

&#x1f490;个人主页&#xff1a;初晴~ &#x1f4da;相关专栏&#xff1a;程序猿的春天 获取Cookie 使用 Servlet 获取Cookie&#xff1a; Spring MVC 是基于 Servlet API 构建的原始 Web 框架&#xff0c;也是在 Servlet 的基础上实现的 RestController RequestMapping…

网页版五子棋—— WebSocket 协议

目录 前言 一、背景介绍 二、原理解析 1.连接过程&#xff08;握手&#xff09; 2.报文格式 三、代码示例 1.服务端代码 &#xff08;1&#xff09;TestAPI 类 &#xff08;2&#xff09;WebSocketConfig 类 2.客户端代码 3.代码演示 结尾 前言 从本篇文章开始&am…

【Go语言】| 第2课:变量声明与、初始化、匿名变量和作用域

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主。 &#x1f913; 同时欢迎大家关注其他专栏&#xff0c;我将分享Web前后端开发、人工智能、机器学习、深…

K8S简单部署,以及UI界面配置

准备两台服务器K8Smaster和K8Sminion 分别在两台服务器上执行以下代码 #添加hosts解析&#xff1b; cat >/etc/hosts<<EOF 127.0.0.1 localhost localhost.localdomain 192.168.45.133 master1 192.168.45.135 node2 EOF #临时关闭selinux和防火墙&#xff1b; sed …

创业初期,找了个没有成本的地方当办公场地

大家好&#xff0c;我是小悟。 如果我问你&#xff0c;创业的第一步是什么&#xff1f;或许你会说资金、团队、市场定位&#xff0c;这些确实都是创业不可或缺的因素。找办公场地也是很重要的一个环节&#xff0c;但如果我现在告诉你&#xff0c;把图书馆作为办公场地&#xf…

一个记事本(可复制源码)

htmlcssjs做了一个记事本&#xff0c;可复制源码 html <!DOCTYPE html> <html lang"zh"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0">…

川大华西团队发表关于早期癌症研究的综述,探索AI在预测癌症进展的应用|顶刊精析·24-11-05

小罗碎碎念 这篇文章于2024-10-21发表在《Nature Reviews Cancer》&#xff0c;是一篇关于早期癌症研究的综述文章&#xff0c;标题为《Emerging strategies to investigate the biology of early cancer》。 作者角色姓名单位名称&#xff08;中文&#xff09;第一作者Ran Zho…

AI 翻唱

本文记录用 So-vits-svc 4.1 训练模型全过程。 需要用到的工具 UVR&#xff1a;用于人声歌声分离&#xff0c;降噪。 (项目传送门) Slicer-gui(Audio-Slicer)&#xff1a;用于音频裁剪。(项目传送门) So-vits-svc 4.1&#xff1a;训练模型&#xff0c;GitHub项目中详细介绍…

讲讲⾼可用的原则?

大家好&#xff0c;我是锋哥。今天分享关于【讲讲⾼可用的原则&#xff1f;】面试题。希望对大家有帮助&#xff1b; 讲讲⾼可用的原则&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在当今信息化时代&#xff0c;随着互联网技术的快速发展&#xff0…