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

SpringCloud微服务-RabbitMQ快速入门

文章目录

    • RabbitMQ快速入门
      • 1、什么是MQ?
      • 2、RabbitMQ概述
      • 3、RabbitMQ的结构和概念
      • 4、常见消息模型
      • 5、HelloWorld

RabbitMQ快速入门

1、什么是MQ?

  • MQ (MessageQueue),中文是消息队列,字面来看就是存放消息的队列。也就是事件驱动架构中的Broker。

  • 消息:就是一个个待处理的事件。

常见的MQ中间件:

image-20240305175616416

2、RabbitMQ概述

RabbitMQ是基于Erlang语言开发的开源消息通信中间件,官网地址:https://www.rabbitmq.com/

RabbitMQ安装参考文档:RabbitMQ部署指南

3、RabbitMQ的结构和概念

image-20240305205451729

RabbitMQ中的几个概念:

  • channel:操作MQ的工具

  • exchange:路由消息到队列中

  • queue:缓存消息

  • virtual host:虚拟主机,是对queue、exchange等资源的逻辑分组

4、常见消息模型

MQ的官方文档中给出了5个MQ的Demo示例,对应了几种不同的用法:

  • 基本消息队列(BasicQueue)

    image-20240305210209074

  • 工作消息队列(WorkQueue)

    image-20240305210212626

  • 发布订阅(Publish、Subscribe),又根据交换机类型不同分为三种:

    • Fanout Exchange:广播

      image-20240305210216601

    • Direct Exchange:路由

      image-20240305210224154

    • Topic Exchange:主题

      image-20240305210229106

5、HelloWorld

官方的HelloWorld是基于最基础的消息队列模型来实现的,只包括三个角色:

  • publisher:消息发布者,将消息发送到队列queue
  • queue:消息队列,负责接受并缓存消息
  • consumer:订阅队列,处理队列中的消息

测试demo:有详细的注释,访问RabbitMQ管理端口来断点测试,感受消息队列的流程。

image-20240305211815608

基本消息队列的消息发送流程:

  1. 建立connection

  2. 创建channel

  3. 利用channel声明队列

  4. 利用channel向队列发送消息

基本消息队列的消息接收流程:

  1. 建立connection

  2. 创建channel

  3. 利用channel声明队列

  4. 定义consumer的消费行为handleDelivery()

  5. 利用channel将消费者与队列绑定

下篇我会讲解RabbitMq在Spring中的运用:SpringAMQP

相关文章:

SpringCloud微服务-RabbitMQ快速入门

文章目录 RabbitMQ快速入门1、什么是MQ?2、RabbitMQ概述3、RabbitMQ的结构和概念4、常见消息模型5、HelloWorld RabbitMQ快速入门 1、什么是MQ? MQ (MessageQueue),中文是消息队列,字面来看就是存放消息的…...

OpenCV学习笔记(五)——图片的缩放、旋转、平移、裁剪以及翻转操作

目录 图像的缩放 图像的平移 图像的旋转 图像的裁剪 图像的翻转 图像的缩放 OpenCV中使用cv2.resize()函数进行缩放,格式为: resize_imagecv2.resize(image,(new_w,new_h),插值选项) 其中image代表的是需要缩放的对象,(new_w,new_h)表…...

c++ 串口通信库

根据资料整理的串口通信库,封装成为了动态库,使用者只需要调用接口即可 使用实例如下: //接受数据 void CSerialPortCommonLibDemoDlg::OnReceive() { char * str NULL; str new char[256]; _port.readAllData(str); CString s…...

数据结构之单链表及其实现!

目录 ​编辑 1. 顺序表的问题及思考 2.链表的概念结构和分类 2.1 概念及结构 2.2 分类 3. 单链表的实现 3.1 新节点的创建 3.2 打印单链表 3.3 头插 3.4 头删 3.5 尾插 3.6 尾删 3.7 查找元素X 3.8 在pos位置修改 3.9 在任意位置之前插入 3.10 在任意位置删除…...

Ubuntu 22.04修改静态ip

1. 备份原网络配置文件 # 配置文件名称因机器设置有异 cd /etc/netplan cp 01-network-config.yaml 01-network-config.yaml.bak# 文件内容如下 network:version: 2renderer: NetworkManager2. 修改配置文件 使用 ipconfig 命令查看网络信息,ip addr 命令也可 我这…...

kali当中不同的python版本切换(超简单)

kali当中本身就是自带两个python版本的 配置 update-alternatives --install /usr/bin/python python /usr/bin/python2 100 update-alternatives --install /usr/bin/python python /usr/bin/python3 150 切换版本 update-alternatives --config python 0 1 2编号选择一个即可…...

MongoDB聚合运算符;$dateToString

$dateToString聚合运算符按用户指定的格式将日期对象转为字符串。 语法 { $dateToString: {date: <dateExpression>,format: <formatString>,timezone: <tzExpression>,onNull: <expression> } }字段说明&#xff1a; 字段是否必须描述date是<da…...

【开源】SpringBoot框架开发教学资源共享平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课程资源模块2.4 课程作业模块2.5 课程评价模块 三、系统设计3.1 用例设计3.2 类图设计3.3 数据库设计3.3.1 课程档案表3.3.2 课程资源表3.3.3 课程作业表3.3.4 课程评价表 四、系统展…...

python基础——条件判断和循环【if,while,for,range】

&#x1f4dd;前言&#xff1a; 这篇文章主要讲解一下条件判断语句if和循环语句while&#xff0c;for在python中需要注意的地方。 建议已有一定了解&#xff08;对语句的执行逻辑清楚&#xff09;的读者观看&#xff0c;如果对条件判断和循环的执行逻辑不太清楚&#xff0c;也可…...

Pytorch 复习总结 6

Pytorch 复习总结&#xff0c;仅供笔者使用&#xff0c;参考教材&#xff1a; 《动手学深度学习》Stanford University: Practical Machine Learning 本文主要内容为&#xff1a;Pytorch 计算机视觉。 本文先介绍了计算机视觉中两种常见的改进模型泛化性能的方法&#xff1a…...

借助 Terraform 功能协调部署 CI/CD 流水线-Part 1

在当今快节奏的开发环境中&#xff0c;实现无缝、稳健的 CI/CD 流水线对于交付高质量软件至关重要。在本文中&#xff0c;我们将向您介绍使用 Bitbucket Pipeline、ArgoCD GitOps 和 AWS EKS 设置部署的步骤&#xff0c;所有步骤都将利用 Terraform 的强大功能进行编排。在Part…...

云原生基础知识:容器技术的历史

容器化的定义&#xff1a; 容器化是一种轻量级的虚拟化技术&#xff0c;将应用程序及其所有依赖项&#xff08;包括运行时、系统工具、系统库等&#xff09;打包到一个称为容器的单独单元中。容器提供了一种隔离的执行环境&#xff0c;使得应用程序可以在不同的环境中运行&…...

golang实现正向代理和反向代理

文章目录 正向代理反向代理区别与联系:总结代理服务器实现正向代理反向代理正向代理 正向代理是客户端代理,它位于客户端和目标服务器之间。它的作用是保护客户端的隐私和安全。 如我们现在想要访问谷歌,但是由于某些原因,无法直接访问到谷歌,我们可以通过连接一台代理服务…...

grpc四种数据流

grpc四种数据流 简介 1.简单模式 这种模式最为传统,即客户端发起一次请求,服务端响应一个数据,这和大家平时熟悉的rpc没什么区别,所以不在详细介绍 2.服务端数据流模式 这种模式是客户端发起一次请求&#xff0c;服务端返回一段连续的数据流。典型的例子是客户端向服务端发…...

SpringCloud-Alibaba-Nacos教程

SpringCloud-Alibaba-Nacos教程 下载地址 https://github.com/alibaba/nacos/releases/tag/2.2.3 直接进入bin包 运行cmd命令 startup.cmd -m standalone 运行成功后 进入nacos可视化页面 账号密码默认都是nacos http://localhost:8848/nacos 微服务入驻Nacos服务注册…...

bug_java

文章目录 1.创建Maven时&#xff1a; idea报错为&#xff1a;java&#xff1a;错误&#xff1a;不支持发行版本52. Springbot启动报错-类文件具有错误的版本 61.0, 应为 52.0 1.创建Maven时&#xff1a; idea报错为&#xff1a;java&#xff1a;错误&#xff1a;不支持发行版本…...

【目标检测】旋转目标检测DOTA格式转YOLO格式标注

准备DOTA格式数据集&#xff1a; dota_dataset -- images |----- train |----- val -- labels |----- train |----- train_original |----- val |----- val_original 修改class_mapping和图片格式&#xff1a; ultralytics/data/converter.py convert_dota_to_yolo_obb() 转换标…...

运动想象 (MI) 迁移学习系列 (3) : MSFT

运动想象迁移学习系列:MSFT 0. 引言1. 主要贡献2. 数据增强方法3. 基于度量的空间滤波转换器3.1 空间过滤3.2 脑电图ViT3.2.1 变压器编码器层3.2.2 基于度量的损失函数 4. 实验结果4.1 消融实验4.2 基线任务对比4.3 跨主体 5. 总结欢迎来稿 论文地址&#xff1a;https://www.s…...

NeRF模型NeRF模型

参考视频&#xff1a;https://www.youtube.com/watch?vHfJpQCBTqZs&ab_channelVision%26GraphicsSeminaratMIT NeRF模型的输入输出: 输入: (x, y, z): 一个三维空间坐标,代表场景中的一个位置点(θ, φ): 视线方向,θ表示与y轴的夹角,φ表示与x轴的夹角,用两个角度可以…...

python爬虫(4)

#前期先说明一下为啥爬虫需要学习数组的存储和处理&#xff0c;只是说在你后期接触到最简单的爬虫后有一个地方可以存放你的数据# 下面为大家带来一个我在做excel表整理时的代码以及上次代码的结果 上次代码的结果&#xff1a; 新的代码&#xff1a; import numpy as np im…...

Apache DolphinScheduler日志把磁盘撑爆了?别慌,教你两招搞定日志清理(附crontab定时脚本)

Apache DolphinScheduler日志爆盘应急指南&#xff1a;从手动清理到自动化防护 凌晨三点&#xff0c;服务器告警铃声刺破夜空——/var分区使用率100%。作为运维负责人&#xff0c;你迅速SSH登录排查&#xff0c;发现罪魁祸首是DolphinScheduler堆积如山的日志文件。这种场景对于…...

Minecraft世界管理终极指南:如何用MCA Selector快速清理和优化你的存档 [特殊字符]

Minecraft世界管理终极指南&#xff1a;如何用MCA Selector快速清理和优化你的存档 &#x1f3ae; 【免费下载链接】mcaselector A tool to select chunks from Minecraft worlds for deletion or export. 项目地址: https://gitcode.com/gh_mirrors/mc/mcaselector MCA…...

C# Socket编程避坑指南:从‘连接成功’到消息乱码,我踩过的那些TCP通讯的坑

C# Socket编程实战避坑指南&#xff1a;从连接管理到消息处理的深度解析 第一次用C#的Socket实现TCP通讯时&#xff0c;看着客户端成功连上服务器的提示&#xff0c;我天真地以为最难的部分已经过去了。直到后来遇到界面卡死、数据粘包、中文乱码等一系列问题&#xff0c;才意识…...

从TACRED到SemEval:手把手教你用Hugging Face微调BERT做关系抽取(含数据集处理)

基于BERT的关系抽取实战&#xff1a;从数据预处理到模型微调全解析 在自然语言处理领域&#xff0c;关系抽取&#xff08;Relation Extraction&#xff09;一直是信息抽取任务中的核心环节。这项技术能够从非结构化文本中识别实体之间的语义关系&#xff0c;形成结构化知识&…...

别再死记硬背了!用一张图+三个比喻,彻底搞懂三极管三种放大电路的区别

三极管放大电路&#xff1a;用生活化比喻破解电子学迷宫 刚接触三极管放大电路时&#xff0c;很多人都会陷入公式和参数的泥沼。共射、共集、共基这三种组态就像三胞胎&#xff0c;看似相似却各有脾性。传统教材往往堆砌数学推导&#xff0c;让初学者在β值和等效电路中迷失方向…...

5分钟掌握AI字幕生成:Open-Lyrics让语音转文字变得简单高效

5分钟掌握AI字幕生成&#xff1a;Open-Lyrics让语音转文字变得简单高效 【免费下载链接】openlrc Transcribe and translate voice into LRC file using Whisper and LLMs (GPT, Claude, et,al). 使用whisper和LLM(GPT&#xff0c;Claude等)来转录、翻译你的音频为字幕文件。 …...

Genshin Impact API 深度解析与实战指南

Genshin Impact API 深度解析与实战指南 【免费下载链接】api A fan-made Genshin Impact API for easy access to game data. 项目地址: https://gitcode.com/gh_mirrors/api13/api GenshinDev API 是一个专门为《原神》游戏数据提供结构化访问接口的开源项目。通过提供…...

AGI不再黑箱,区块链不再空转:2026奇点大会公布的7层可验证智能体架构(VIA-7),附开源参考实现链接

第一章&#xff1a;2026奇点智能技术大会&#xff1a;AGI与区块链 2026奇点智能技术大会(https://ml-summit.org) AGI系统与去中心化共识的协同演进 在2026奇点智能技术大会上&#xff0c;核心议题之一是通用人工智能&#xff08;AGI&#xff09;如何与区块链底层范式深度融合…...

nSkinz:CS:GO终极皮肤修改器完整指南

nSkinz&#xff1a;CS:GO终极皮肤修改器完整指南 【免费下载链接】nSkinz Skin changer for CS:GO 项目地址: https://gitcode.com/gh_mirrors/ns/nSkinz 想要在CS:GO中自由更换武器皮肤却不想花费大量金钱&#xff1f;nSkinz开源皮肤修改器为你提供了完美的解决方案。这…...

如何用OBS StreamFX插件彻底改变你的直播画面质感

如何用OBS StreamFX插件彻底改变你的直播画面质感 【免费下载链接】obs-StreamFX StreamFX is a plugin for OBS Studio which adds many new effects, filters, sources, transitions and encoders! Be it 3D Transform, Blur, complex Masking, or even custom shaders, youl…...