谷粒商城实战笔记-252~254-商城业务-消息队列-Exchange-三种type的使用

news2024/9/20 22:23:41

文章目录

  • 一,252-商城业务-消息队列-Direct-Exchange
    • 1,创建4个队列
    • 2,exchange绑定queue
    • 3,发送消息
  • 二,253-商城业务-消息队列-Fanout-Exchange
    • 1,创建一个type为fanout的exchange
    • 2,给这个exchange绑定几个queue
    • 3,发送消息
  • 三,254-商城业务-消息队列-Topic-Exchange
    • 1,创建一个topic类型的exchange
    • 2,绑定queue
    • 3,发送消息1
    • 4,发送消息2
    • 5,topic类型的exchange

一,252-商城业务-消息队列-Direct-Exchange

这一节的内容是实操-direct exchange的信息发送。

1,创建4个队列

  • gulimall
  • gulimall.news
  • gulimall.emps
  • gulixueyuan.news

在这里插入图片描述

2,exchange绑定queue

如下,分别把4个queue绑定到exchange。
在这里插入图片描述
最终效果如下。

在这里插入图片描述

3,发送消息

如下图所示,发送一条消息,发送时指定routing keygulimall.news
在这里插入图片描述

结果如下。

在这里插入图片描述
因为是direct,所以消息只会发送给bindingrouting keys完全匹配的队列,只发给队列gulimall.news

二,253-商城业务-消息队列-Fanout-Exchange

1,创建一个type为fanout的exchange

在这里插入图片描述

2,给这个exchange绑定几个queue

在这里插入图片描述

3,发送消息

给这个exchange发送消息,结果线上消息会发送给这个exchange绑定的所有queue,和routing key完全没有关系,只和binding有关系。
在这里插入图片描述

三,254-商城业务-消息队列-Topic-Exchange

1,创建一个topic类型的exchange

在这里插入图片描述

2,绑定queue

在这里插入图片描述
结果如下:

在这里插入图片描述

3,发送消息1

在这里插入图片描述
如上,发送的routing keys是gulimall.news,在topic类型下,根据我们定义的binding,能匹配到4个queue:

  • gulimall、gulimall.news、gulimall.emps,匹配模式gulimall.#
  • gulixueyuan.news,匹配模式*.news

所以这条消息会发送给4个queue。

4,发送消息2

在这里插入图片描述
如上图,这里有所不同的是,我们并没有明确定义这样:

  • binding:topic.news
  • 但是其能匹配这个binding: *.news
  • 所以只会发送给queue: gulixueyuan.news。

5,topic类型的exchange

这张图片展示的是一个主题交换机(Topic Exchange),它是RabbitMQ中一种常用的交换机类型。主题交换机通过模式匹配来决定将消息路由到哪个队列。

在图片中,我们能看到四个队列(Queues)分别绑定了不同的模式(Binding Key)。这些模式都是由单词组成的,单词之间用点号"."分隔。同时,主题交换机也支持两种通配符:

  • #:匹配零个或多个单词;
  • *:匹配一个单词。

例如,队列1绑定了"usa.#“,这意味着它将接收所有以"usa.“开头的消息;队列2绑定了”.news”,表示它将接收所有包含"news"作为最后一个单词的消息;队列3绑定了"#.weather",意味着它将接收所有以".weather"结尾的消息;队列4绑定了"europe.#",因此它将接收所有以"europe."开头的消息。

接下来,我们看几个例子:

  1. 当一条消息的路由键(Routing Key)为"usa.news"时:

    • 队列1(绑定键为"usa.#")可以接受,因为"usa.news"满足以"usa."开头;
    • 队列2(绑定键为".news")也可以接受,因为它包含了"news"作为最后一个单词;
    • 队列3(绑定键为"#.weather")不能接受,因为"usa.news"没有以".weather"结尾;
    • 队列4(绑定键为"europe.#")也不能接受,因为"usa.news"并没有以"europe."开头。
  2. 当一条消息的路由键(Routing Key)为"europe.weather"时:

    • 队列1(绑定键为"usa.#")不能接受,因为"europe.weather"并不以"usa."开头;
    • 队列2(绑定键为".news")可以接受,因为它包含了"weather"作为最后一个单词;
    • 队列3(绑定键为"#.weather")也能接受,因为"europe.weather"是以".weather"结尾的;
    • 队列4(绑定键为"europe.#")可以接受,因为"europe.weather"以"europe."开头。

总的来说,主题交换机允许你定义一系列的过滤规则,使得消息能够更灵活地被路由到合适的队列。这对于处理具有相似性的不同消息非常有用,比如上述例子中的美国新闻和欧洲天气预报。

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

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

相关文章

通过C# 读取PDF页面大小、方向、旋转角度

在处理PDF文件时,了解页面的大小、方向和旋转角度等信息对于PDF的显示、打印和布局设计至关重要。本文将介绍如何使用免费.NET 库通过C#来读取PDF页面的这些属性。 文章目录 C# 读取PDF页面大小(宽度、高度)C# 判断PDF页面方向C# 检测PDF页面…

VMWare中添加Ubuntu20.04.06镜像

一、下载Ubuntu镜像 Ubuntu20.04: 官方下载地址https://releases.ubuntu.com/20.04.6/ 进入官网 点击下图红框位置,下载镜像镜像名为ubuntu-20.04.6-desktop-amd64.iso 也可点击下面链接直接下载:https://releases.ubuntu.com/20.04.6/ubu…

安科瑞ACREL-7000能源管控平台在综合能耗监测系统在大型园区的应用

摘要:大型综合园区已经成为多种能源消耗的重要区域,为了探索适用于大型综合园区的综合能耗监测系统,建立了综合能耗监测系统整体框架,提出了综合能耗网络、能耗关系集合、能耗均衡度等概念,并以某大型综合园区为例对综…

【三维深度补全模型】PENet

【版权声明】本文为博主原创文章,未经博主允许严禁转载,我们会定期进行侵权检索。 参考书籍:《人工智能点云处理及深度学习算法》 本文为专栏《Python三维点云实战宝典》系列文章,专栏介绍地址“【python三维深度学习】python…

java结合Ai

Spring AI Spring AI提供的API支持跨人工智能提供商的 聊天,文本到图像,和嵌入模型等,同时支持同步和流API选项; 介绍 Spring AI 是 AI 工程的应用框架。其目标是将Spring生态系统的设计原则(如可移植性和模块化设计)应用于AI领域,并促进使用POJO作为应用程序的构建块…

大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式

喜大普奔!破百了! 点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完&a…

【精选】基于django柚子校园影院(咨询+解答+辅导)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

[240824] 微软更新导致部分 Linux 用户无法启动系统,谁之过?| Chrome 稳定版更新(128.0.6613.84)

目录 微软更新导致部分 Linux 用户无法启动系统,谁之过?Chrome 稳定版更新 (128.0.6613.84) 微软更新导致部分 Linux 用户无法启动系统,谁之过? 最近,微软推送的一项 Windows 更新导致部分 Linux 用户无法启动系统&am…

基于Springboot + vue + mysql 藏区特产销售平台 设计实现

目录 📚 前言 📑摘要 1.1 研究背景 📑操作流程 📚 系统架构设计 📚 数据库设计 💬 E-R表 系统功能模块 系统首页 特产信息 ​编辑 个人中心 购物车 用户注册 管理员功能模块 管理员登录 管…

Stable diffusion模型如何区分?通俗易懂,入门必看!

在Stable Diffusion的基础学习中,很多小伙伴们可能看到繁杂的大模型就蒙圈了,那么多的模型后缀,究竟代表什么呢?如何区分呢?今天就带大家来学习一下~ 不同后缀模型介绍 在Stable diffusion中,…

【Tomact源码解析】——组件介绍

目录 一、简介 二、组件和体系架构简介 三、组件详情 Server Service Connector Engine ​编辑Host Context Wrapper 四、容器详情 生命周期机制 监听器机制 管道机制 五、补充内容 一、简介 Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于…

支持在线编辑的文件管理系统MxsDoc

DocSys是一个基于Web的文件管理系统(全平台支持:Linux,Windows,Mac),它提供了丰富的功能和特性,以满足不同用户在不同场景下的需求。 开源地址:DocSys: MxsDoc是基于Web的文件管理系统&#xff…

校友林小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,树木管理管理,所属科管理,树木领取管理,树跟踪状态管理,用户信息统计管理,树木捐款管理,留言板管理 微信端…

【芯片往事】陈大同-展讯和TD

前言:几年前(2012),应邀为校友刊物《水木清华》写了一年创业专栏,其中有几期回忆了当年先后创办硅谷豪威科技(OmniVision)和上海展讯通信(SpreadTrum)的经历,…

ZMQ发布订阅模型

案例一 发布者Publisher(server) // server.cpp #include <zmq.hpp> #include <string> #include <iostream> #include <chrono> #include <thread> using namespace std; using namespace zmq; int main() {context_t context(1);socket_t so…

维纳滤波(Wiener Filtering)

维纳滤波&#xff08;Wiener Filtering&#xff09; 引言 维纳滤波&#xff08;Wiener Filtering&#xff09;是一种最优线性滤波方法&#xff0c;广泛应用于信号处理、图像处理和通信系统中。它旨在从含噪声的信号中恢复原始信号&#xff0c;最小化均方误差&#xff08;MSE&…

谷粒商城实战笔记-251-商城业务-消息队列-Exchange类型

文章目录 一&#xff0c;Exchange二&#xff0c;Exchange的四种类型1&#xff0c;direct2&#xff0c;fanout3&#xff0c;topic 三&#xff0c;实操1&#xff0c;创建一个exchange2&#xff0c;创建一个queue3&#xff0c;将queue绑定到exchange 一&#xff0c;Exchange AMQP …

二叉树的链式存储(代码实现)

二叉树的链式存储 用链表实现&#xff0c;基于完全二叉树规律来构建树&#xff0c;按照完全二叉树的编号方法&#xff0c;从上到下&#xff0c;从左到右。一共n个节点。 第i个节点&#xff1a; 左子节点编号&#xff1a;2*i &#xff08;2*i<n&#xff09; 右子节点编号&…

【C++题解】1146. 求S的值

欢迎关注本专栏《C从零基础到信奥赛入门级&#xff08;CSP-J&#xff09;》 问题&#xff1a;1146. 求S的值 类型&#xff1a;递归基础、函数 题目描述&#xff1a; 求 S12471116…的值刚好大于等于 5000 时 S 的值。 输入&#xff1a; 无。 输出&#xff1a; 一行&…

写作手三天速成攻略【数学建模国赛赛前必看内容】

第一天&#xff1a;准备论文模板&#xff0c;学习各类基础画图技巧 1、论文模板 对于写作手&#xff0c;除了内容的连贯性&#xff0c;排版是非常重要的&#xff0c;可以说有一个好的排版&#xff0c;只要论文是完整的&#xff0c;有结果的&#xff0c;基本上保底有省奖&#…