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.hqwc.cn/news/124548.html

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

相关文章

解决每次重启ganache虚拟环境,十个账号秘钥都会改变问题

很多时候 我们启动一个 ganache 环境 然后 通过私钥 在 MetaMask 中 导入用户 但是 当我们因为 电脑要关机呀 或者 ETH 消耗没了呀 那我们就不得不重启一个ganache虚拟环境 然后 你在切一下网络 让它刷新一下 你就会发现 上一次导入的用户就没有了 这是因为 你每次 ganache…

Spring Boot:利用JPA进行数据库的增改

目录 JPA介绍Service接口Service和Autowired示例代码 Dao数据库操作层Repository示例代码 控制器文件示例代码-增加增加成功示例代码-修改修改成功 JPA介绍 JPA&#xff08;Javaa Persistence API)一种用于持久化 Java 对象到关系型数据库的标准规范。它提供了一种统一的方式来…

jeecgboot 可编辑表格弹窗富文本框

最近使用jeecgboot框架的JEditableTable做一个数据维护&#xff0c;有一个需求是用户要录入SQL语句&#xff0c;帮他顺序执行SQL&#xff0c;由于SQL又臭又长&#xff0c;小小的input框没办法显示全&#xff0c;导致每次需要在txt里编辑好了再贴进去&#xff0c;修改也是一样。…

【LeetCode热题100】--114.二叉树展开为链表

114.二叉树展开为链表 方法一&#xff1a;对二叉树进行先序遍历&#xff0c;得到各个节点被访问到的顺序&#xff0c;利用数组存储下来&#xff0c;然后在先序遍历之后更新每个节点的左右节点的信息&#xff0c;将二叉树展开为链表 /*** Definition for a binary tree node.* …

结构和基本尺寸

声明 本文是学习GB-T 586-2015 船用法兰铸钢止回阀. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了法兰连接尺寸和密封面按 CB/T 4196、GB/T 2501 的船用法兰铸钢止回阀(以下简 称止回阀)的分类和标记、要求、试验方法、检验规…

stm32之雨滴传感器使用记录

一、简介 雨滴传感器、烟雾传感器&#xff08;MQ2&#xff09;、轨迹传感器、干黄管等的原理都类似&#xff0c;都是将检测到的信号通过LM393进行处理之后再输出&#xff0c;可以输出数字信号DO&#xff08;0和1&#xff09;和模拟信号A0。 雨滴传感器在正常情况下是AO输出的是…

2023年10月4日

服务器 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//实例化一个服务器server new QTcpServer(this);//此时&#xff0c;服务器已经成功进入监听状态&…

智慧公厕有什么?

智慧公厕作为一种新形态的公共厕所&#xff0c;把智慧化的技术融入到公共厕所的日常使用与管理当中&#xff0c;赋予公共厕所更良好的信息化、数字化、科技化、联网化。 那么&#xff0c;智慧公厕有什么&#xff1f;本文从设施、技术、服务三方面进行快速了解。 首先&#xf…

【Spring Cloud】基于 Feign 实现远程调用,深入探索 Feign 的自定义配置、性能优化以及最佳实践方案

前言 在微服务架构中&#xff0c;服务之间的通信是至关重要的&#xff0c;而远程调用则成为实现这种通信的一种常见方式。在 Java 中&#xff0c;使用 RestTemplate 是一种传统的远程调用方式&#xff0c;但它存在一些问题&#xff0c;如代码可读性差、编程体验不一致以及参数…

【iptables 实战】9 docker网络原理分析

在开始本章阅读之前&#xff0c;需要提前了解以下的知识 阅读本节需要一些docker的基础知识&#xff0c;最好是在linux上安装好docker环境。提前掌握iptables的基础知识&#xff0c;前文参考【iptables 实战】 一、docker网络模型 docker网络模型如下图所示 说明&#xff1…

【LeetCode热题100】--199.二叉树的右视图

199.二叉树的右视图 思路&#xff1a; 使用根->右->左方法进行遍历节点&#xff0c;同时记录层数&#xff0c;将当前层数与记录的层数进行比较&#xff0c;如果当前层数大于记录的层数&#xff0c;添加该元素&#xff0c;若当前层数小于记录的层数&#xff0c;说明该层已…

Java8 Lambda.stream.sorted() 方法使用浅析分享

文章目录 Java8 Lambda.stream.sorted() 方法使用浅析分享sorted() 重载方法一升序降序 sorted() 重载方法二升序降序多字段排序 mock代码 Java8 Lambda.stream.sorted() 方法使用浅析分享 本文主要分享运用 Java8 中的 Lambda.stream.sorted方法排序的使用&#xff01; sorted…