SpringCloud微服务-RabbitMQ快速入门

news2025/1/21 22:10:28

文章目录

    • 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

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

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

相关文章

【❤️算法笔记❤️】-每日一刷-21、合并两个有序链表

文章目录 题目思路解答 题目 简单 相关标签 相关企业 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4]示例 2: 输入…

蓝桥杯-排序

数组排序 Arrays.sort(int[] a) 这种形式是对一个数组的所有元素进行排序,并且时按从小到大的顺序。 package Work;import java.util.*;public class Imcomplete {public static void main(String args[]) {int arr[]new int [] {1,324,4,5,7,2};Arrays.sort(arr)…

【Java】CAP理论以及它的实际应用案例

目录 简介 不是所谓的“3 选 2” CAP 实际应用案例 总结 CAP 理论/定理起源于 2000年,由加州大学伯克利分校的Eric Brewer教授在分布式计算原理研讨会(PODC)上提出,因此 CAP定理又被称作 布鲁尔定理(Brewer’s the…

JavaSE——基础小项目-模拟ATM系统(项目主要目标、技术选型、架构搭建、具体实现、完整代码注释)

目录 项目主要目标 技术选型 面向对象编程 使用集合容器 程序流程控制 使用常见API 系统架构搭建与欢迎页设计 Account ATM Test 用户开户功能实现 录入账户名称与性别 录入账户密码与取现额度 生成新卡号 存入账户 登录功能实现 登录后操作实现 退出账户 存…

JavaScript 入门手册(二)

目录 八、JavaScript 数据类型 8.1 动态类型 8.2 typeof 操作符 8.3 Undefined 和 Null 九、JavaScript 对象 9.1 创建对象 9.2 对象方法 十、作用域 十一、条件语句 十二、循环 12.1 for 循环 12.1.1 语句 1 12.1.2 语句 2 12.1.3 语句 3 12.2 for...in 循环 …

文本溢出隐藏 显示省略号,鼠标悬浮展示 el-tooltip(TooltipIsShowMixin封装)

目录 mixins 封装使用 TooltipIsShowMixin效果展示 mixins 封装 TooltipIsShowMixin.js export const TooltipIsShowMixin {data() {return {tooltipIsShow: false}},methods: {tooltipIsDisHandler(className) {this.$nextTick(() > {const dom document.querySelector…

语义化与自动化——第三代指标平台两大核心能力详解(内含QA)

【作者简介】杜雪芳,Aloudata 合伙人兼首席业务架构师。12 年数据业务从业经验,3 年管理咨询经验。历任阿里集团淘宝商业分析负责人、阿里音乐商业智能中心负责人、蚂蚁集团用户增长分析与洞察产品负责人。在数据体系搭建、数据分析、用户标签建设、用户…

混合动力汽车应用中的厚膜电阻器

电阻器在标准内燃机汽车的许多应用中都有发现。混合动力汽车中的电阻器在电池管理(BMS)和动态制动系统中也有其他应用。 混合动力汽车使用两种不同的能源来最大限度地提高效率。这通常意味着将存储在电池中的电能与内燃机(AutoExpress&#x…

腾讯云4核8G12M轻量服务器优惠价格446元一年,646元15个月

腾讯云4核8G12M轻量服务器优惠价格446元一年,646元15个月,180GB SSD云硬盘,2000GB月流量。 一张表看懂腾讯云服务器租用优惠价格表,一目了然,腾讯云服务器分为轻量应用服务器和云服务器CVM,CPU内存配置从2核…

Mac 安装JDK,并通过命令切换不同版本jdk

mac电脑安装了jdk8、jdk11、jdk21 三个版本的jdk,在环境变量中配置命令,动态切换不同jdk 1.下载JDK,Mac建议下载xxxxx/jdk-21_macos-x64_bin.dmg https://download.oracle.com/java/21/latest/jdk-21_macos-x64_bin.dmg, 2.双击安…

图解目标检测的现代历史

任务分类 图像分类 根据图像的主要对象对图像进行分类。 目标定位 预测包含主要对象的图像区域。然后,可以使用图像分类来识别该区域内的物体 目标检测 定位和分类出现在图像中的所有对象。这个任务通常包括:确定区域,然后对其中的对象进行…

物联网技术在低压安全用电云平台的应用

前言:低压安全用电系统是保障用电质量的重要依托,也是增强用电安全性的根本依据。而在其中应用物联网技术,可进一步提升监测效率。在此之上,文章简要分析了低压安全用电系统的设计基准与监测内容,并通过科学制定系统建…

波奇学Linux:信号的发送和保存

信号的发送的对象是pcb task_struct{ int signal; //0000 0000 .... 0001 进程pcb中存在int型的signal来保存信号,用位图的方式,比特位的0,1表示是否收到信号 比特位位置表示信号的编号。 发信号的本质就是修改task_struct的信号位图对应的…

App Inventor 2 Personal Image Classifier (PIC) 拓展:自行训练AI图像识别模型,开发图像识别分类App

这里仅仅介绍一下AI图像识别App的实现原理,AI的基础技术细节不在本文讨论范围。通过拓展即可开发出一款完全自行训练AI模型,用于特定识别场景的App了。 我们都知道,人工智能AI的基本原理是事先准备好样本数据(这里指的是图片&…

结构体(C语言进阶)(一)

目录 前言 1、结构体声明 1.1 结构体基本概念 1.2 结构体声明 1.3 特殊的结构体声明 1.3.1 匿名结构体声明 1.4 结构体自引用 1.5 结构体变量的定义和初始化 1.6 结构体内存对齐 1.7 修改默认对齐数 1.8 结构体传参 总结 前言 C语言除了有其内置类型,还有…

MySQL基础-----SQL语句之DCL数据控制语句

目录 前言 一、管理用户 1.查询用户 2.创建用户 3.修改用户密码 4.删除用户 案例 二、权限控制 1.查询权限 2.授予权限 3.撤销权限 案例 前言 本期我们学习SQL语句的最后一部分内容,也就是数据控制语句DCL。DCL英文全称是Data Control Language(数据控制语…

Rust错误处理和Result枚举类异常错误传递

Rust 有一套独特的处理异常情况的机制,它并不像其它语言中的 try 机制那样简单。 首先,程序中一般会出现两种错误:可恢复错误和不可恢复错误。 可恢复错误的典型案例是文件访问错误,如果访问一个文件失败,有可能是因…

初学C++

注释 变量 作用:给一段指定的内存空间起名,方便操作这段内容 数据类型 变量名 变量初始值; 常量 用于记录程序中不可更改的数据 宏常量: #define 宏常量 常量值 const修饰的变量: const 数据类型 常量名 常量值; 关键字 …

C#,回文分割问题(Palindrome Partitioning Problem)算法与源代码

1 回文串 “回文串”是一个正读和反读都一样的字符串,初始化标志flagtrue,比如“level”或者“noon”等等就是回文串。 2 回文分割问题 给定一个字符串,如果该字符串的每个子字符串都是回文的,那么该字符串的分区就是回文分区。…

【EI会议征稿通知】2024年计算机视觉、机器人与自动化工程国际学术会议(CRAE 2024)

2024年计算机视觉、机器人与自动化工程国际学术会议(CRAE 2024) 2024 International Conference on Computer Vision, Robotics and Automation Engineering(CRAE 2024) 2024年计算机视觉、机器人与自动化工程国际学术会议&…