rabbitmq中对DIRECT和TOPIC路由的记录

【AI深究】合成数据(Synthetic Data)深度解析:原理、算法与工程实践——全网最详细流程|核心原理、主流方法、数学表达、工程实践与细节、未来趋势|GAN、VAE、语言模型LLM合成如GPT 大家好,我是爱酱。本篇延续将会系统梳理合成数据(Synthetic Data)的核心原理、主流方法、数学表达、工程实践与未来趋势,结合数学公式,帮助你全面理解这一AI建模的关键技术。 注:本文章含大量数学算式、详细例子说明及大量代码演示,大量干货,建议先收藏再慢慢观看理解。新频道发展不易,你们的每个赞、收藏跟转发都是我继续分享的动力! 阅读详情

DIRECT模式:

#设置交换器名称
mq.config.exchange=log.direct

#info队列名称
mq.config.queue.info=log.info

#info路由键
mq.config.queue.info.routing.key=log.info.routing.key

#error队列名称
mq.config.queue.error=log.error

#error路由键
mq.config.queue.error.routing.key=log.error.routing.key

在direct路由中, 队列和路由键是一一对应的。 也就是说, 一个 队列要有一个路由键, 一个路由键唯一确定又给队列。

在创建消费者时,在类前设置如下参数:


@Component
@RabbitListener(
        bindings = @QueueBinding(
                value = @Queue(value = "${mq.config.queue.info}" , autoDelete = "true"),
                exchange = @Exchange(value = "${mq.config.exchange}" , type = ExchangeTypes.DIRECT),
                key = "${mq.config.queue.info.routing.key}"
        )
)
public class InfoConsumer {

类名前设置这些参数,就为消费者指定了一个交换器, 指定了一个队列和路由键。消费者在监听队列时,就是拿着这个路由键去找交换器,交换器通过拿到的路由键到指定队列里取数据。因为在direct中,路由键和队列时一对一的,所以消费者绑定的路由键只能到固定的队列里取数据。

 

TOPIC模式:

设置如下配置:

#设置交换器名称
mq.config.exchange.topic=log.topic

#info队列名称
mq.config.queue.info.topic=log.info2

#error队列名称
mq.config.queue.error.topic=log.error2

#log队列名称
mq.config.queue.log.topic=log.all

发送者如下配置:

    //topic消息生产者 向多个队列发送消息
    public void sendMsg4(String msg)
    {
        amqpTemplate.convertAndSend(exchageTopic , "user.log.error" , msg);
    }

第一个消费者:


@Component
@RabbitListener(
        bindings = @QueueBinding(
                value = @Queue(value = "${mq.config.queue.info.topic}" , autoDelete = "true"),
                exchange = @Exchange(value = "${mq.config.exchange.topic}" , type = ExchangeTypes.TOPIC),
                key = "*.log.error"
        )
)
public class UserConsumer 

第二个消费者:

@Component
@RabbitListener(
        bindings = @QueueBinding(
                value = @Queue(value = "${mq.config.queue.log.topic}" , autoDelete = "true"),
                exchange = @Exchange(value = "${mq.config.exchange.topic}" , type = ExchangeTypes.TOPIC),
                key = "*.log.*"
        )
)
public class LogConsumer

对于生产者 , 生产者通过user.log.info2路由键向交换器发送了一条消息。 这时候交换器会将这个路由键和他关联的消息存起来。(这时候队列没有创建)

对于消费者 , 消费者通过模糊匹配的路由键,想交换器去索要发送者发来的信息。 这时候交换器就会根据之前生产者发来的路由和信息构成的路由表,去挨个匹配消费者拿来的路由键。

如果模糊匹配能匹配的上,那就把这个路由键所关联的信息拿出来,放到这个消费者所关联的队列中。如果队列此时不存在,则创建队列,然后将信息存入。

例如: 消费者A绑定的队列为log.infoA  , 绑定的路由为*.log.info 。  

            消费者B绑定的队列为log.infoB, 绑定的路由为*.log.* 。

            消费者C绑定的队列为log.infoC, 绑定的路哟为*.log.C

            此时, 生产者向交换器发送一个路由为: user.log.info 的消息msg。

            交换器拿到生产者发来的消息后,根据路由匹配规则来决定这个消息可以放到 哪些队列中。 

            现在交换器路由表中的路由有三个 , 分别是  A: *.log.info(队列log.infoA)        B : *.log.*(队列log.infoB)       C : *.log.C (队列log.infoC)       生产者发来信息的路由为user.log.info

            经过匹配, 能够匹配的路由键是消费者A的*.log.info  , 消费者B的 *.log.* ,   不能匹配的是消费者C的*.log.C。

            所以,交换器会将这条消息放入消费者A绑定的log.infoA队列和消费者B绑定的log.infoB队列。    

            消费者A和消费者B监听队列后,就可以从队列中取到数据了。

 

在这里,消费者就是一个标标准准的买家, 交换器就是中介所。 消费者告诉交换器,我就要个皮大衣,什么材质,什么颜色。 生产者给交换器供货后,交换器就看生产者供的货是不是消费者想要的(能不能按匹配规则匹配上),如果可以,通知消费者来取货。

     

 

【华为OD机试】2024年真题C卷(python)-API集群负载统计 【华为OD机试】-API集群负载统计-【华为OD机试】-API集群负载统计:某个产品的 restful API 集合部署在服务器集群的多个节点上,近期对客户端访问日志进行了采集,需要统计各个API的访问频次,根据热点信息在服务器节点之间做负载均衡,现在需要实现热点信息统计查询功能。 restful API 是由多个层级构成,层级之间使用/连接,如 A/B/C/D 这个地址,A属于第一级,B属于第二级,C属于第三级,D属于第四级。 现在负载均衡模块需要知道给定层级上某个名字出现的频次,未出现过用0 阅读详情

相关推荐

【Qt实战项目】记事本完整项目

效果图如下所示: 全部代码如下: #include “notepad.h” #include int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.showMaximized(); return a.exec(); }

YIZHILIUSHA2020的博客 575

RabbitMQ(二)Springboot整合及使用

一、RabbitMQ的重要概念 RabbitMQ是一种基于amq协议的消息队列,本文主要记录一下使用spring-boot-starter-amqp操作 rabbitmq。 a) 虚拟主机(vhost) 虚拟主机:一个虚拟主机持有一组交换机、队列和绑定。虚拟主机的作用在于进行权限管控,rabbitmq默认有一个虚拟主机"/"。可以使用rabbitmqctl add_vhost命令添加虚...

fox_bert的博客 3738

物联网技术(AIR780E cat1-4G模块+小程序+腾讯云MQTT)驱动的智能井盖系统设计(连载01)

终端设备采用AIR780E模块作为主控器,电子模块有三轴加速度传感器、可燃气体传感器,AIR780E模块(4G模块)通过MQTT通信协议进行数据打包上传至EMQX服务器,在EMQX服务器中,用户可以自行订阅主题和发布主题,小程序通过MQTT通信协议订阅EMQX服务器的主题,服务器通过接收到硬件发布的数据,转发到微信小程序。

leida_3669的博客 2214

springboot整合rabbitMQ系列(四)路由模型,就是必须路由键匹配之后,消费者才可以进行消费信息

第四个模型就是 路由的模型,这个就是多了一个路由键,消息里面有路由键,队列里面有路由键,只有路由键匹配之后,才可以消费者获取到数据。 生产者 @Test void testRouter() { //使用rabbitmq直接往队列里面放数据 // convertAndSend()第一个参数 是 rabbitTemplate.convertAndSend("directs","info","direct 模型里面发送的消息"); } 这个生产者在发.

一天不写代码难受的博客 1010

C#与AutoCAD插件开发实战:从零构建你的第一个自定义命令

本文为AutoCAD插件开发新手提供了一份完整的C#实战指南。从搭建Visual Studio开发环境、添加AutoCAD .NET API引用,到编写并注册第一个“Hello AutoCAD”自定义命令,再到实现一个交互式绘制十字线的实用命令,详细讲解了核心代码结构与调试技巧。文章旨在帮助工程师和设计师利用C#自动化重复绘图任务,显著提升工作效率。

weixin_29294597的博客 434

Labview项目01:标准可配置序列测试框架

摘要:本文介绍了一个基于LabVIEW2020开发的通用测试框架系统。该系统采用模块化设计,包含主界面、调试界面、设置界面和登录界面。主功能包括:1)可配置测试序列,支持延时、预定值输出、随机值输出等操作;2)单步测试功能自主添加;3)界面支持测试序列编辑和权限管理。系统采用队列机制处理事件和测试流程,通过CSV文件存储测试序列,支持参数化配置。用户可自定义测试VI(A_.vi和N_.vi格式),并通过调试界面验证测试序列。最终测试结果在主界面显示,提供整体判断功能。该系统既可作为学习参考,也可用于实际测试

weixin_38637405的博客 1552

SpringBoot集成RabbitMQ

RabbitMQ RabbitMQ由erlang语言开发的遵从AMQP(Advanved Message Queue)的开源实现。 组成 发送者,队列,接受者,在发送者和队列之间存在着交换机。 交换机 交换机决定着消息的走向,主要的功能用于接受消息并将消息发送到绑定的队列,不存储消息,若没有队列接受,则会抛弃消息。交换机有路由键 交换机有4种种类:Direct,Topic,Head...

记录,记录,记录 292

机器人中的数值优化(二十一)—— 伴随灵敏度分析、线性方程组求解器的分类和特点、优化软件

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例

慕羽★的博客 4205

springboot整合rabbitMQ-路由模型

路由的模型,这个就是多了一个路由键,消息里面有路由键,队列里面有路由键,只有路由键匹配之后,才可以消费者获取到数据。 生产者 @Test void testRouter() { //使用rabbitmq直接往队列里面放数据 // convertAndSend()第一个参数 是 rabbitTemplate.convertAndSend("directs","info","direct 模型里面发送的消息"); } 这个生产者在发送消息的时候,就可...

诚的博客 1073

uniapp H5刷新页面后返回按钮失效问题完美解决方案

这个问题其实很隐蔽,尤其是uniapp H5 场景下刷新导致栈清理,很多开发者一开始都懵掉了。uniapp 内部对「页面栈只有一个」时的返回逻辑是reLaunch;所以只要在这个分支里替换为自己的逻辑(比如),就能顺利实现预期。目前我在项目里已经跑通了,暂时没发现问题。不得不说,知道源码里这个逻辑后,真的是醍醐灌顶,只能膜拜框架大佬了 🤯。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 522

基于matlab的主成分分析的人脸二维码识别系统

人脸识别因其在系统安全验证、信用验证、刑侦跟踪、身份管理、视频会议、人机交互、智能家居等方面的巨大应用前景,成为当前模式识别和人工智能领域越来越热门的一个研究方向。随着安全入口控制和二维码智能扫描应用需求的快速增长,基于二维码识别的生物人脸统计识别技术也引起了人们的重视。本案例将详细讲解基于主成分分析的人脸特征提取的原理与方法,并将其与 QR 二维码的编解码进行结合,将 MATLAB 作为工具平台,调用 QR 二维码编解码应用程序,进而实现一个人脸二维码自动识别的系统原型。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 976

springboot整合rabbitMq,java核心技术卷目录

public static final String TEST_QUEUE_TO_TOPIC2 = “topic.message2”; /** 交换机(topic) */ public static final String TOPIC_EXCHANGE = “topic_exchange”; /** 路由key(topic) */ public static final String TOPIC_EXCHANGE_ROUTING_KEY = “topic.#”; } 一、普通消息: 1.创建普通队

m0_64867839的博客 1272

第1课:开篇扫盲——OpenClaw是什么?能帮你解决什么问题?(入门必看)

核心目标:学会安装、卸载、管理OpenClaw技能,自定义AI代理的性格与权限,让AI贴合自己的使用习惯。核心内容技能市场详解:ClawHub市场核心技能分类(办公、学习、开发、生活),热门技能推荐(web-search、文件处理、邮件管理)[superscript:3][superscript:4]。技能安装与卸载:终端命令实操(openclaw skill install/uninstall),技能更新与版本管理[superscript:3]。

从零开始,掌握网络安全。提供全面的网络安全教程、攻防演练技巧和行业动态。 1754

【Node.js】RabbitMQ 不同交换器类型的使用

RabbitMQ 使用交换器(Exchange)来接收生产者发送的消息,并根据交换器类型和绑定规则将消息路由到一个或多个队列(Queue)。:基于完全匹配的路由键进行消息路由。:基于模式匹配的路由键进行消息路由,支持通配符等(使用"*“匹配一个单词或使用”#"匹配多个单词)。:基于消息头属性进行消息路由。:将消息广播到所有绑定的队列,无视路由键。使用 MQ 的时候,记得先启动 MQ 服务。Direct Exchange 适用于需要基于精确匹配路由键来路由消息的场景。

小秀的博客 1500

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

rabbitmq交换机工作模式

一、fanout:广播,这种模式只需要将队列绑定到交换机上即可,是不需要设置路由键的 (p代表生产者publisher,x代表交换机exchange,红色的是消息队列queue,下同) 每一个消息队列所收到的内容都是一样的,有多少个队列,就有多少个消息副本。 比如:将所有日志一个记录到磁盘文件,一个在控制台显示。 二、direct:根据RoutingKey匹配消息路由到指定的队列 根据路由键匹配关系,上面的队列只会接收error级别的日志,存储到磁盘中; 而下面的队列会接收info、

qq_44299529的博客 628

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

一、RabbitMQ基础知识(概述)

一、背景 最近再看rabbitmq相关只是,发现只是知道了使用与流程,很多细节不清楚,如延迟队列,rpc等;故以记之。 二、基础概念 我们先来看下整体构造一个结构图,这样会方便们更好地去理解RabbitMQ的基本原理(网上找的图 嘿嘿)。 图一 通过上面这张应用相结合的结构图既能够清晰的看清楚整体的send Message到Receive Message的一个大致的流程。当然上面有很多名词都相比...

weixin_44613736的博客 187

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Rabbitmq一些基本使用时配置的记录

端口的使用 5672为程序中链接rabbitmq,15672为网页端访问rabbitmq控制台的端口,默认不允许guest登录; 各模式下的一些配置情况: 在发布/订阅(Pub/Sub)模式下: 交换机类型为:fanout 在Routing(路由)模式下: 交换机类型为:direct 此模式下可通过routingKey进行消息的不同消费者的接收 在topic模式下: 交换机类型为topic ...

染尽 1456

Java研学-RabbitMQ(四)

本文介绍了RabbitMQ中三种交换机类型及其使用方法。Fanout交换机实现广播模式,将消息发送到所有绑定队列,适用于日志、通知等场景;Direct交换机通过精确匹配RoutingKey路由消息,适合精准控制的任务分发;Topic交换机支持通配符匹配,实现多级分类路由。每种交换机类型都包含队列创建、交换机绑定、消费者监听和消息发送的完整代码示例,展示了不同路由策略的实际应用场景和配置方式。

zhlyxx的博客 491

RabbitMQ详细使用教程

RabbitMQ是一款高性能的异步通讯组件,支持同步和异步两种通讯方式。同步通讯需等待返回结果,实时性高但拓展性差;异步通讯无需等待,吞吐量高但时效性差。RabbitMQ架构包含生产者、交换机、队列和消费者,通过Virtual Host实现数据隔离。安装RabbitMQ需搭配Erlang环境,启动后可通过管理后台插件进行配置。消息消费采用ACK确认机制,确保消息处理完成后再删除,提高可靠性。相比其他MQ(如Kafka、RocketMQ),RabbitMQ以高可靠性和功能完善著称,适合中小型业务系统。异步调用

weixin_45616758的博客 422

RAbbitMQ使用以及原理

RabbitMQ使用以及原理解析 RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue)的开源实现 在RabbitMQ官网上主要有这样的模块信息, Work queues消息队列, Publish/Subscribe发布订阅服务, Routing, Topics, RPC等主要应用的模块功能. Broker:它提供一种传输服务,它的角色就是维护一条从生产者到消费者的路线,保证数据能按照指定...

weixin_58089927的博客 199

【c#】RabbitMQ学习文档(五)Topic(主题。通配符模式)

【c#】RabbitMQ学习文档(五)Topic(主题。通配符模式) 原文:【c#】RabbitMQ学习文档(五)Topic(主题。通配符模式) (本实例都是使用的Net的客户端,使用C#编写),说明,中文方括号【】表示名词。 在上一个教程中,我们改进了我们的日志记录系统。 没有使用只能够进行虚拟广播的【Fanout】交换机,而是使用了【...

weixin_30731305的博客 1014

RabbitMQ系列教程之五:主题(Topic)

(本实例都是使用的Net的客户端,使用C#编写),说明,中文方括号【】表示名词。   在上一个教程中,我们改进了我们的日志记录系统。 没有使用只能够进行虚拟广播的【Fanout】交换机,而是使用了【Direct】类型的交换机,这样做就可以让我们有可能选择性地接收日志。  虽然使用【Direct】类型的【消息交换机】改进了我们的系统,但它仍然有限制 - 它不能基于多个标准进行路由选择。  在我们的日...

weixin_34270606的博客 356

RabbitMQ官方文档翻译之Topics(五)

RabbitMQ;TopicExchange

Chenny的blog 672

rabbitmq中文教程python版 - Topics

源码:https://github.com/ltoddy/rabbitmq-tutorial Topics (using the Pika Python client) 本章节教程重点介绍的内容 在之前的教程中,我们改进了日志记录系统。我们没有使用只有虚拟广播的fanout交换,而是使用了direct交换,并让选择性接收日志成为了可能。 ...

weixin_34245169的博客 181

SpringBoot进阶教程(五十)集成RabbitMQ---MQ实战演练

RabbitMQ是一个在AMQP基础上完成的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。RabbitMQ是流行的开源消息队列系统,用erlang语言开发。RabbitMQ是AMQP(高级消息队列协议)的标准实现。 消息中间件的工作过程可以用生产者消费者模型来表示.即,生产者不断的向消息队列发送信息,而消费者从消息队列中消费信息. 如果你还...

weixin_30951231的博客 145

rabbitMq实现延时队列

rabbitMq是受欢迎的消息中间件之一,相比其他的消息中间件,具有高并发的特性(天生具备高并发高可用的erlang语言编写),除此之外,还可以持久化,保证消息不易丢失,高可用,实现集群部署,提供灵活的路由和可靠性,可视化管理等等的优点。 相比于其他的消息队列,rabbitmq最大的特色就是加入了exchange(交换器)这个东西,AMQP协议中的核心思想就是生产者和消费者隔离,生产者...

zlfjavahome的专栏 211
上一篇: springboot 邮件发送 Java
下一篇: java 邮箱 电话号码 格式效验 后端
libingbojava
博客等级 码龄9年 64粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值