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

RabbitMQ-主题模式

接上文 RabbitMQ-发布订阅模式和路由模式

1 主题模式

#通配符 代表0个或多个。*通配符 代表 1个或多个

在这里插入图片描述
进行测试,修改配置文件

@Configuration
public class RabbitConfiguration {@Bean("topicExchange")  //这里使用预置的Topic类型交换机public Exchange exchange(){return ExchangeBuilder.topicExchange("amq.topic").build();}@Bean("yydsQueue")public Queue queue(){return QueueBuilder.nonDurable("yyds").build();}@Bean("binding")public Binding binding2(@Qualifier("topicExchange") Exchange exchange,@Qualifier("yydsQueue") Queue queue){return BindingBuilder.bind(queue).to(exchange).with("*.test.*").noargs();}
}

在这里插入图片描述
去掉yyds1,yyds2的绑定关系
在这里插入图片描述
启动服务,进入yyds队列详情
在这里插入图片描述
进入交换机详情发送消息
在这里插入图片描述
在这里插入图片描述

除了默认主题交换机,还有叫做amq.rabbitmq.trace的交换机,它也是topic类型的。用来帮助我们记录和追踪生产者和消费者使用消息队列的交换机,它是一个内部交换机。

使用amq.rabbitmq.trace交换机:

首先创建一个消息队列用于接收记录
在这里插入图片描述
在这里插入图片描述

由于是使用docker安装的rabbitmq,需要先通过docker命令进入容器内部:

docker exec -it  <容器id>  /bin/bash
docker exec -it  fa7e07e3ae6366a86a6e5310db56c2414c5dff7795cfeb2c5f22c2c5c39ec5e1  /bin/bash

然后再控制台将虚拟主机/test的追踪功能开启:

rabbitmqctl trace_on -p /test

在这里插入图片描述
开启后将队列trace绑定到 amq.rabbitmq.trace 交换机上
在这里插入图片描述
代表所有的生产者,无论发给哪个交换机的消息,都会被记录到trace队列中
在这里插入图片描述
在这里插入图片描述

由于发送到此交换机上的 routingkey 为routing key为 publish.交换机名称 和 deliver,队列名称,分别对应生产者投递到交换机的消息,和消费者从队列上获取的消息,因此这里使用 # 通配符进行绑定。

进行测试,通过amq.topic向yyds队列发送消息

在这里插入图片描述

在这里插入图片描述

发送之后查看trace队列的消息,发现两条消息

在这里插入图片描述

取出trace的消息:通过追踪,可以得知消息发送的交换机、routingKey、用户等信息。包括信息本身。

在这里插入图片描述

同样的,消费者在取出数据也有就记录。

在这里插入图片描述

http://www.lryc.cn/news/185511.html

相关文章:

  • 阅读文献小技巧
  • 简易的贪吃蛇小游戏(以后或许会更新)C++/C语言
  • 23云计算全国职业技能大赛容器云-容器编排
  • 哨兵(Sentinel-1、2)数据下载
  • 开启AI大模型时代|「Transformer论文精读」
  • 【小沐学前端】Windows下搭建WordPress(nginx1.25、PHP8.2、WordPress6.3、MySQL5.7)
  • centos8 Error: Failed to download metadata for repo ‘appstream‘
  • 键盘上F1至F12键的作用
  • 2023年湘潭大学OJ作业2 2023年下学期《C语言》作业0x01-数学计算 XTU OJ 1080,1081,1082,1083,1084
  • C/C++ 进程间通信system V IPC对象超详细讲解(系统性学习day9)
  • python—如何提取word中指定内容
  • 分享几个通用个人简历模板|行业通用
  • 如何正确操作封箱机
  • mysql面试题7:MySQL事务原理是什么?MySQL事务的隔离级别有哪些?
  • vue 项目打包性能分析插件 webpack-bundle-analyzer
  • C++ day2
  • 【Kafka专题】Kafka集群架构设计原理详解
  • Docker 镜像的缓存特性
  • Javascript 笔记:object
  • 【vue3】可编辑el-table
  • 一个开源的安卓相机:OpenCamera
  • 分类预测 | MATLAB实现POA-CNN鹈鹕算法优化卷积神经网络多特征分类预测
  • 学习网络编程No.7【应用层之序列化和反序列化】
  • 小谈设计模式(10)—原型模式
  • 用《斗破苍穹》的视角打开C#3 标签与反射(人物创建与斗技使用)
  • c语言进阶部分详解(详细解析字符串常用函数,并进行模拟实现(下))
  • 一文看懂光模块的工作原理
  • 基于SpringBoot的桂林旅游景点导游平台
  • 【小程序 - 加强】自定义组件、使用npm包、全局数据共享、分包_05
  • Vue.js3学习篇--Vue模板应用