RabbitMQ 基础 学习笔记1

RabbitMQ架构

虚拟主机(vhost):一个"用户"只能操作属于自己的虚拟主机里的交换机和队列,起到了数据隔离的作用。

MQ(消息队列)技术对比

交换机

绝大多数情况下,消息传递过程是:生产者->交换机->队列->消费者

Fanout交换机

消费者(指定交换机 )->Fanout交换机->广播到所有(与Fanout绑定的)队列

Direct交换机和Topic交换机

消费者(指定交换机+bindingkey )->Direct交换机->定向到所有(与Direct交换机绑定+bindingkey匹配的)队列

消费者(指定交换机+bindingkey )->Topic交换机->定向到所有(与Topic交换机绑定+bindingkey匹配的)队列

对比一下Direct交换机和Topic交换机

消费者(指定交换机+bindingkey)->Direct交换机->定向到所有(与Direct交换机绑定+bindingkey匹配的)队列

消费者(指定交换机+bindingkey)->Topic交换机->定向到所有(与Topic交换机绑定+bindingkey匹配的)队列

是不是一摸一样?是的,那总该得有区别吧?区别在于:

Direct 交换机bindingkey完全精确匹配,无通配符支持

Topic 交换机bindingkey模糊匹配 ,支持两种通配符:1. *:匹配一个 用 . 分隔的单词

  1. #:匹配零个或多个 用 . 分隔的单词

声明交换机和队列

在控制台手动声明

RabbitMQ 的控制台官方名称是 RabbitMQ Management UI(也常简称为「RabbitMQ 管理控制台」「RabbitMQ 管理界面」),是 RabbitMQ 官方提供的可视化管理工具。

访问方式 :启动RabbitMQ服务后,默认通过浏览器访问 http://[RabbitMQ服务器IP]:15672(默认端口 15672),需输入 RabbitMQ 的用户名 / 密码(默认管理员账号:guest/guest,仅本地访问有效)。

在代码中自动化声明(以Java为例)

配置类中声明交换机、队列、绑定(Fanout无此):

注释声明:

在消费者方法上加上注释

消息转换器

生产者与消费者之间的交换机、队列里面装的消息是序列化后的信息,生产者要通过消息转换器把原始数据转换成交换机、队列之间的消息,消费者要通过消息转换器将接收到的消息转换成原始数据。

JDK序列化

JSON序列化

RabbitMQ进阶 学习笔记2:RabbitMQ 进阶 学习笔记2-CSDN博客

相关推荐
lll235269177916 小时前
2026行业语音转写工具专业术语转写功能横向分析
笔记·智能手机
宝绿特塑业再生科技19 小时前
改性HDPE再生颗粒在户外家具挤出发泡板材中的色差控制与高品质价值重构
经验分享·科技·学习·生活·1024程序员节·户外家具
andrsted21 小时前
练题簿在线免费刷题:让整理过的资料,变成能反复练习的题库
学习·微信小程序·小程序·学习方法·刷题·1024程序员节
Alsn861 天前
Windows 安装 Ollama 及本地模型部署
学习·1024程序员节
欣欣之王来了1 天前
原始HTML插值:v-html指令的使用与安全风险
前端·学习·架构·项目·vue3教程
解决小子1 天前
【虚幻引擎】【C++】【GAS框架】构建角色基类、属性集、数值钳制
c++·笔记·游戏引擎·虚幻·gas·能力系统
知识分享小能手1 天前
C学习教程,从入门到精通,C语言学生信息管理系统 — 知识点详解(18)
c语言·学习·1024程序员节
破芽1 天前
learn-claude-code-s05-s11-学习笔记
笔记·学习
pipixia200331 天前
C++ 面试高频:namespace 的 6 个知识点,从 using 到匿名命名空间
c语言·学习·算法·嵌入式·命名空间·c++面试·匿名命名空间
每天题库1 天前
汽车维修工等级考试题库 理论实操核心考点一次梳理清
学习·安全·考试·题库·考证