【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.mzph.cn/web/58336.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于python构造电影neo4j知识图谱

使用pandas构造neo4j电影知识谱图 实现效果 电影知识图谱构造过程 实现过程 import pandas as pd from tqdm import tqdmfrom config import graph, cnndef delete_all():graph.run("MATCH(n) DETACH DELETE(n)")# 创建带属性的节点 def createNode(node, row):try…

曲速磨-干法研磨机、超细研磨机、节能细磨

曲速磨在涂料粉体中的应用广泛&#xff0c;主要体现在提高涂料粉体的品质、生产效率以及适应特殊工艺需求等方面。 1.提高涂料粉体品质 细化颗粒&#xff1a;曲速磨通过研磨媒体(如锆珠)的高速运动&#xff0c;对涂料粉体进行强烈的碰撞、摩擦和剪切作用&#xff0c;从而有效地…

加锁失效,非锁之过,加之错也|京东零售供应链库存研发实践

本文导读 从事京东零售供应链库存业务&#xff0c;库存数量操作增减十分频繁&#xff0c;并且项目开发中会常常遇到各种并发情况&#xff0c;一旦库存数量操作有误&#xff0c;势必给前台销售产生损失影响&#xff0c;因此需要关注对库存数量并发操作下的一致性问题。 大部分…

FileLink如何帮助医疗行业实现安全且高效的跨网文件交换

在当今数字化时代&#xff0c;医疗行业在快速发展的同时&#xff0c;也面临着数据安全和信息流转效率的双重挑战。患者的健康记录、影像数据、检查报告等大量敏感信息需要在不同医院、诊所、实验室和保险公司之间高效、迅速地传递。然而&#xff0c;传统的邮件、传真和纸质文件…

Nginx:我自己的网站

一、Nginx的简介 Nginx是一款轻量的级的HTTP服务器&#xff0c;也是一款邮箱代理服务器&#xff0c;同时具备反向代理&#xff0c;通用TCP/UDP代理功能。 Nginx可以运行在x86、ARM等多种平台上&#xff0c;同时支持Linux、windows等主流的操作系统 二、Nginx的特点 1、支持高并…

qt QDropEvent详解

1、概述 QDropEvent是Qt框架中用于处理拖放释放事件的一个类。它允许开发者在用户界面中更好地管理和处理拖放操作&#xff0c;从而实现交互式和响应式的应用程序。QDropEvent类提供了处理拖放释放事件所需的方法和信号&#xff0c;使得开发者能够轻松地实现拖放功能&#xff…

数据中台一键大解析!

自从互联玩企业掀起了数据中台风&#xff0c;数据中台这个点马上就火起来了&#xff0c;短短几年数据中台就得到了极高的热度&#xff0c;一大堆企业也在跟风做数据中台&#xff0c;都把数据中台作为企业数字化转型的救命稻草&#xff0c;可是如果我告诉你数据中台并不是万能钥…

vue props无法被watch

描述 使用父子组件prop传参的时候&#xff0c;无法侦听。 解决&#xff1a; 原来代码&#xff1a; watch(props.XXXX, () > {console.log(1)})添加两个默认参数&#xff1a; watch(props.XXXX, () > {console.log(1)}, {deep: true, immediate: true})原因&#xff…

C++设计模式结构型模式———组合模式

文章目录 一、引言二、组合模式三、总结 一、引言 组合模式是一种结构型设计模式&#xff0c; 可以使用它将对象组合成树状结构&#xff0c; 并且能像使用独立对象一样使用它们。代码实现中涉及了递归调用。组合模式与传统上的“类与类之间的组合关系”没有关联&#xff0c;不…

Java 中的 ThreadLocal:线程内的私有数据存储

在 Java 并发编程中&#xff0c;线程之间共享数据可能会导致复杂的同步问题&#xff0c;例如数据竞争、死锁等。然而&#xff0c;某些场景中我们希望变量只在某个特定线程中存在&#xff0c;这样每个线程都有自己的变量副本&#xff0c;从而避免了共享状态带来的问题。ThreadLo…

如何查看当前linux系统信息

1.查看Linux发行版信息,&#xff08;如centos7&#xff09; cat /etc/os-release2.查看内核版本 uname -r3.查看硬件信息 查看cpu信息&#xff1a; lscpu查看内存信息&#xff1a; free -h查看硬盘使用情况 df -h查看系统硬件&#xff08;包括cpu、内存、硬盘等详细信息 lshw…

Maven项目的基础配置:利用IDEA将SpringBoot的项目打包成war文件

文章目录 引言Maven项目的聚合与继承(依赖管理)把项目打包成war包其他打包配置引言 利用IDEA将SpringBoot的项目打包成war文件Maven项目的聚合与继承(依赖管理)Maven项目的聚合与继承(依赖管理) 把项目打包成war包 利用IDEA将SpringBoot的项目打包成war文件:要配置启动…

基于vue框架的的奶茶店预约订单系统3fb55(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,奶茶分类,奶茶信息 开题报告内容 开题报告 题目&#xff1a;基于Vue框架的奶茶店预约订单系统开发 一、研究背景与意义 背景 随着饮品市场的蓬勃发展&#xff0c;奶茶店作为其中的重要组成部分&#xff0c;其业务量和顾客需求持…

Interpreter 解释器模式

1 意图 给定一个语言&#xff0c;定义它的文法的一种表示&#xff0c;并定义一个解释器&#xff0c;这个解释器使用该表示》解释语言中的句子。 2 结构 AbstactExpression 声明一个程序的解释操作&#xff0c;这个接口为抽象语法树中所有的结点所共享。TemminalExpression 实…

【数据结构】哈希思想详解

目录 前言1. unordered系列关联式容器1.1 unordered_map1.1.1 unordered_map介绍1.1.2 接口说明 1.2 unordered_set 2. 哈希概念3. 哈希冲突4. 哈希函数5. 哈希冲突解决5.1 闭散列5.1.1 闭散列的概念5.1.2 闭散列代码实现 5.2 开散列5.2.1 开散列概念5.2.2 开散列代码实现5.2.3…

LEFT JOIN和INNER JOIN 以及 FOR ALL ENTRIES IN

【在写开发报表的时候&#xff0c;遇到多表取数&#xff0c;重温数据库里面的集中多表取数的方法。】 在ABAP开发中&#xff0c;JOIN、LEFT JOIN、INNER JOIN以及FOR ALL ENTRIES IN是用于将两个或多个表中的数据结合起来的不同方法。以下是它们之间的主要区别和使用方…

元戎启行嵌入式面试题及参考答案

介绍下 CAN 通信原理 控制器局域网(CAN)是一种串行通信协议,主要用于汽车、工业自动化等领域的电子控制单元(ECU)之间的通信。 其通信原理是基于多主站架构。在总线上,多个节点(设备)都可以主动发起通信。CAN 协议使用差分信号来传输数据,通过两条信号线 CAN_H 和 CAN…

变异凯撒(Crypto)

目录 解题思路 题目设计原理 总结 解题思路 从题目可以看出&#xff0c;这是凯撒密码&#xff0c;原理应该还是整体偏移&#xff0c;但是变异了。 凯撒密码只有字母的横移&#xff0c;而通过观察我们可知&#xff0c;加密密文包含大小写字母、特殊字符&#xff0c;于是猜想大…

光伏无人机踏勘,照亮光伏未来!

光伏电站选址地分散在各地&#xff0c;想要精准获取该地的地形特点与屋顶面积等信息&#xff0c;传统的人工踏勘耗时耗力且精度无法保证&#xff0c;难以满足现代光伏项目的规模快发发展需求。光伏无人机踏勘&#xff0c;照亮光伏未来&#xff01; 在光伏无人机智能踏勘设计系统…

Nvidia突袭AI江湖!悄悄发布新模型,完爆OpenAI和Anthropic?

你以为Nvidia只会造芯片&#xff1f;太天真了&#xff01;这家GPU巨头刚刚在AI语言模型领域上演了一出惊天逆袭&#xff0c;让OpenAI和Anthropic都措手不及。 没有轰轰烈烈的发布会&#xff0c;没有铺天盖地的宣传&#xff0c;Nvidia就这么静悄悄地在Hugging Face平台上扔出了一…