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

【RabbitMQ】RabbitMQ的基本架构是什么?包括哪些核心组件?

RabbitMQ基于AMQP协议实现,由多个核心组件组成,确保消息的可靠传递。

Rabbit的架构图:

请添加图片描述

1.RabbitMQ的基本架构:

1.核心组件:

1.Producer(生产者): 发送消息到RabbitMQ。
2.Exchange(交换机):接受生产者发送的消息,并根据路由规则将消息分发到队列。
3.Queue(队列):存储消息,等待消费者消费。
4.Binding(绑定):将交换机和队列关联起来,定义消息的路由规则。
5.Consumer(消费者):从队列中获取消息并进行处理。
6.Connection(连接):生产者或消费者与RabbitMQ之间的TCP连接。
7.Channel(信道):在连接的基础上创建的虚拟连接,用于执行具体的操作(如发送消息、消费消息)。

2.消息流转过程

2.1生产者发送消息:

  • 生产者通过连接和信道,将消息发送到交换机。
  • 消息包含路由键和消息体。

2.2交换机路由消息:

  • 交换机根据路由键和绑定规则,将消息发送到对应的队列。

2.3队列存储消息:

  • 队列接收并存储消息,等待消费者消费。

2.4消费者消费消息:

  • 消费者通过连接和信道从队列中获取消息并处理。
  • 消费者可以手动或自动发送确认(ACK)给RabbitMQ。

3.核心组件的详细说明:

3.1Producer(生产者)

  • 作用:发送消息到RabbitMQ。
  • 关键操作
    • 创建连接(Connection)。
    • 创建信道(Channel)。
    • 发送消息到交换机。

3.2Exchange(交换机)

  • 作用接收生产者发送的消息,并根据路由规则将消息分发到队列。
  • 类型
    • Direct Exchange:根据路由键精确匹配队列。
    • Fanout Exchange:将消息广播到所有绑定的队列。
    • Topic Exchange:根据路由键的模式匹配队列。
    • Headers Exchange:根据消息头属性匹配队列。

3.3Queue(队列):

  • 作用存储信息,等待消费者消费。
  • 特性
    • 消息先进先出(FIFO)。
    • 设置持久化、优先级、TTL等属性。

3.4Binding(绑定)

  • 作用:将交换机和队列关联起来,定义消息的路由规则。
  • 关键属性:
    • 路由键(Routing Key):用于匹配消息和队列

3.5Consumer(消费者)

  • 作用:从队列中获取消息并进行处理。
  • 关键操作
    • 创建连接(Connection)。
    • 创建信道(Channel)。
    • 订阅队列并消费消息。

3.6Connection(连接)

  • 作用:生产者或消费者与RabbitMQ之间的TCP连接。
  • 特性
    • 一个连接可以创建多个信道。
    • 连接是长连接,避免频繁建立和断开连接的开销。

3.7Channel(信道)

  • 作用:在连接基础上创建的虚拟连接,用于执行具体的操作(如发送消息、消费消息)。
  • 特性
    • 一个连接可以创建多个信道
    • 信道是轻量级的,减少资源消耗。

4.总结:

  • Producer:发送消息。
  • Exchange:路由消息
  • Queue:存储消息。
  • Binding:定义路由规则。
  • Consumer:消费消息。
  • Connection:建立与RabbitMQ的连接。
  • Channel:执行具体操作的信道。

相关文章:

【RabbitMQ】RabbitMQ的基本架构是什么?包括哪些核心组件?

RabbitMQ基于AMQP协议实现,由多个核心组件组成,确保消息的可靠传递。 Rabbit的架构图: 1.RabbitMQ的基本架构: 1.核心组件: 1.Producer(生产者): 发送消息到RabbitMQ。 2.Exchange(交换机):接…...

Quartz知识点总结

简单说明 简单的定时任务使用Timer或者ScheduledExecutorService quartz支持复杂的定时执行功能。支持ram存储(内存存储)和持久化存储。quartz有分布式和集群能力 简单使用 获取任务调度器Schedule。任务调度器可以管理任务。创建任务实例。使用JobB…...

P2786 英语1(eng1)- 英语作文

P2786 英语1(eng1)- 英语作文 题目背景 蒟蒻 HansBug 在英语考场上,挠了无数次的头,可脑子里还是一片空白。 题目描述 眼下出现在 HansBug 蒟蒻面前的是一篇英语作文,然而智商捉急的 HansBug 已经草草写完了&#…...

Clion远程开发配置

代码开发环境:windows下,基于Clion 2024.3开发,标准为C20 代码运行环境:远程服务器,ubuntu,cmake版本3.12,gcc11.4,g11.4,gdb12.1 实现功能:在本地windows开…...

Javascript基础

目录 1. 变量声明2. 基本数据类型3.复杂数据类型4.字符串方法5.对象方法6.时间方法7.条件(if)8.循环(for/while)9.遍历(for in/of)10.多选(Switch)END 1. 变量声明 const&#xff1…...

蓝桥杯2023年第十四届省赛真题-阶乘的和

蓝桥杯2023年第十四届省赛真题-阶乘的和 时间限制: 2s 内存限制: 320MB 提交: 3519 解决: 697 题目描述 给定 n 个数 Ai,问能满足 m! 为∑ni1(Ai!) 的因数的最大的 m 是多少。其中 m! 表示 m 的阶乘,即 1 2 3 m。 输入格式 输入的第一行包含一个整…...

供应链优化售前方案建议书V23(58页PPT)(文末有下载方式)

随着家电行业的快速发展,供应链管理已成为企业竞争的关键要素。杭州松下电器在面对日益复杂的市场环境和激烈的市场竞争时,急需对其供应链进行优化。本文将对杭州松下电器的供应链优化方案进行详细解读,探讨其优化策略及其潜在价值。 供应链…...

校园论坛系统Selenium自动化测试

本文为自动化测试 本项目自动化测试代码链接(仅供参考): 自动化测试代码 功能测试文章链接: 校园论坛系统自动化测试报告-CSDN博客 🌈自动化测试 思维导图 ​ 根据思维导图, 我们选取几个主要的功能进行自动化测试 编写代码 思路: 根据脑图进行测试用例的编写&am…...

Linux 一步部署DHCP服务

#!/bin/bash #脚本作者和日期 #author: PEI #date: 20250319 #检查root权限 if [ "$USER" ! "root" ]; then echo "错误:非root用户,权限不足!" exit 0 fi #防火墙与高级权限 systemctl stop firewa…...

Cool Request:可以统计任意方法耗时

什么是Cool Request Cool Request是一个IDEA中的接口调试插件,除了可以发起基本的HTTP请求之外,还提供了强大的反射调用能力,可以绕过拦截器,这点广受网友的好评,当然伴随着还有Spring中对Scheduled注解的调用&#x…...

基于Spring Boot的图书管理系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...

Python实战(2)-数据库支持

使用简单的纯文本文件可实现的功能有限。诚然,使用它们可做很多事情,但有时可能还需要额外的功能。你可能希望能够自动完成序列化,此时可求助于shelve和pickle(类似于shelve)​。不过你可能需要比这更强大的功能。例如…...

【工具】isolateR桑格测序数据的自动化处理、分类分析以及微生物菌株库的生成R包

文章目录 介绍代码案例Step 1: isoQC - Automated quality trimming of sequencesStep 2: isoTAX - Assign taxonomyStep 3: isoLIB - Generate strain library 参考 介绍 对分类标记基因(如16S/18S/ITS/rpoB/cpn60)进行桑格测序是鉴定包括细菌、古菌和…...

比特币牛市还在不在

在加密货币的风云世界里,比特币的一举一动始终牵动着投资者们的神经。近期比特币的涨幅动作,再次引发了市场对于牛市是否仍在延续的激烈讨论。 在深入探索比特币市场的过程中,获取全面且及时的资讯至关重要。您可以通过访问Techub News&#…...

鸿蒙下载文件保存到手机本地公共文件夹下、将本地的沙箱目录文件,保存到公共目录,鸿蒙picker save保存文件为空(0字节)的问题

1、首先将下载好的文件,保存到本地目录,这个目录是用户看不到的; 2、然后通过picker的save保存文件,这个picker,它只是获取公共目录uri用的 3、当picker有回调时,将公共目录的uri获取之后,把下…...

红日靶场(二)——个人笔记

靶场搭建 新增VMnet2网卡 **web:**需要配置两张网卡,分别是外网出访NAT模式和内网域环境仅主机模式下的VMnet2网卡。 **PC:**跟web一样,也是需要配置两张网卡,分别是外网出访NAT模式和内网域环境仅主机模式下的VMn…...

口袋书签功能上新,免费使用

丰富主页面的菜单,操作更加便捷。 快来构建你的门户站点吧。 戳: 口袋书签...

Model Context Protocol - Prompts

1. 概述 Model Context Protocol (MCP) 提供了一种标准化的方式,使服务器能够向客户端暴露提示模板(prompts)。Prompts 是服务器提供的结构化消息和指令,用于与语言模型进行交互。客户端可以发现可用的提示、获取其内容&#xff…...

零知识证明:区块链隐私保护的变革力量

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...

基于STC89C52的CD4511译码显示数字设计

摘要 本文深入探讨基于STC89C52单片机的数字显示系统设计,剖析CD4511译码驱动芯片工作原理,结合Proteus仿真验证功能。通过硬件电路、软件编程及原理分析,完整呈现单片机控制数码管显示的实现过程,为相关开发提供理论与实践参考。 一、引言 在单片机应用中,数码管显示是…...

MPC算法路径跟踪_Matlab实现

在机器人控制领域,模型预测控制(MPC)因其能够处理动态约束和多目标优化的特性,成为路径跟踪的热门方案。近期,我在 GitHub 上发现了 Mr.Winter 的MPC路径规划项目,其代码实现简洁且功能完整。本文将结合理论…...

QT Quick(C++)跨平台应用程序项目实战教程 2 — 环境搭建和项目创建

目录 引言 1. 安装Qt开发环境 1.1 下载Qt安装包 1.2 安装Qt 1.3 安装Visual Studio 2022 1.4 在Visual Studio 2022中安装Qt插件 1.5 在Visual Studio 2022中安装大模型编程助手 2. 创建Qt Quick项目 2.1 创建新项目 2.2 项目结构 2.3 运行项目 3. 理解项目代码 3…...

洛科威多功能岩棉板为环保助力,推动企业绿色可持续发展

在当今全球环保意识日益增强的背景下,企业工程项目在追求高效益的同时,也更加注重绿色可持续发展。作为建筑材料领域的佼佼者,洛科威公司推出的多功能岩棉板凭借其卓越的绿色环保特性,正逐渐成为企业工程项目领域的首选材料。 洛科…...

7.3《重力》

教会什么:重力及其三要素、重力加速度g、 培养什么:从力的三要素出发去研究一个力,用所学探究未知 课标: (二)运动和相互作用 2.2 机械运动和力 2.2.3 通过常见事例或实验,了解重力,认识力的作用效果。 (四)实验探究 4.1.6 用弹测力计测量力。 例6 测量一本物理教科书…...

虚幻基础:ue自定义类

文章目录 Gameplay Tag:ue标签类创建:其他-数据表格-gameplaytag安装:项目设置:gamePlayTag:gamePlay标签列表使用:变量类型:gamePlayTag primary data asset:ue数据类:通…...

88页手册上线 | 企业级本地私有化DeepSeek实战指南

DeepSeek为普通企业在低成本、高性能、安全可控的前提下私有化部署AI大模型提供了可行路径。 云轴科技ZStack全新推出《企业级本地私有化DeepSeek实战手册》(点击免费下载),直击企业痛点,从7B轻量化模型到671B超大规模部署&#…...

Godot读取json配置文件

概述 在Godot 4.3中读取JSON配置文件,可以通过以下步骤实现: 步骤说明 读取文件内容:使用FileAccess类打开并读取JSON文件。 解析JSON数据:使用JSON类解析读取到的文本内容。 错误处理:处理文件不存在或JSON格式错…...

时序分析笔记

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、周期约束 二、建立时间和保持时间 三、时序路径 四、时序模型 前言 约束文件笔记,傅里叶的猫的视频。 一、周期约束 时序约束就是告诉软件输…...

【笔记】深度学习模型训练的 GPU 内存优化之旅:重计算篇

开设此专题,目的一是梳理文献,目的二是分享知识。因为笔者读研期间的研究方向是单卡上的显存优化,所以最初思考的专题名称是“显存突围:深度学习模型训练的 GPU 内存优化之旅”,英文缩写是 “MLSys_GPU_Memory_Opt”。…...

Deepseek使用技巧大全

还有好多人不会用,一个链接让你们全部学完 https://m0739kfdebc.feishu.cn/docx/LIBddUcupoIBwVxp0yGcsT77nFd?fromfrom_copylink...

redis搭建一主一从+keepalived(虚拟IP)实现高可用

redis搭建一主一从keepalived(虚拟IP)实现高可用 前提 有两台机器:如 10.50.3.141 10.50.3.142,虚拟ip如:10.50.3.170 安装redis(两台机器执行): # 启用Remi仓库(CentOS 7) sudo yum install…...

6、说一下索引失效的场景?【中高频】

索引失效意味着 查询操作 不能利用索引进行数据检索,而是使用 全表扫描(也就是 数据库需要从磁盘上读取表的所有数据行),从而导致性能下降,下面一些场景会发生索引失效 对索引使用左或者左右模糊匹配(where…...

前端调试实战指南:从入门到高阶的完整解决方案

引言:调试的本质与价值 调试是程序员将理想代码映射到现实运行环境的关键过程。据统计,开发者平均将30%的工作时间用于调试。本指南将系统梳理现代前端调试技术体系,帮助开发者构建高效的调试工作流。 一、基础调试工具箱 1.1 浏览器开发者工具核心功能 元素调试(Elemen…...

电商多包裹与子母单发货区别

在电商发货中,多包裹发货和子母单是两种常见的发货方式,具体含义如下: 1. 多包裹发货 定义: 指一个订单中的商品因库存、尺寸或重量等原因,无法装入一个包裹,需分成多个包裹发出。 原因: 商品…...

程序化广告行业(28/89):基于用户旅程的广告策略解析

程序化广告行业(28/89):基于用户旅程的广告策略解析 大家好!一直以来,我都希望能和大家在技术学习的道路上携手前行、共同进步。在之前的文章里,我们探讨了程序化广告行业的诸多关键环节,这次让…...

Hugging Face模型国内镜像HF Mirror下载

直接下载 Hugging Face 开启梯子,一看好几个g... 我们寻找国内镜像。 访问HF-Mirror 继续上面搜索。 继续点击跟踪路径。 拼出路径。 https://hf-mirror.com/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors 如果网…...

2025-03-19 学习记录--C/C++-C语言-单链表的结构体定义 + LNode * 和 LinkList 的区别

C语言-单链表的结构体定义 ⭐️ 一、单链表的结构体定义 🍭 typedef struct LNode { // 定义结构体 LNode,表示链表中的一个结点int data; // 数据域,存储结点的值struct LNode *next; // 指针域,指向下一个结点 } LN…...

【操作系统安全】任务7:服务与进程

目录 一、引言 二、服务与进程介绍 2.1 服务的概念 2.2 进程的概念 2.3 服务与进程的关系 2.4 服务与进程在网络安全中的重要性 三、LAMP 网站环境部署 3.1 LAMP 简介 3.2 LAMP 环境部署步骤 3.2.1 安装 Linux 操作系统 3.2.2 安装 Apache HTTP 服务器 3.2.3 安装 …...

AI里的RAG到底是什么?

AI大模型如deepseek本地部署的成本相对较低,如果要训练,微调大模型,则需要非常多的显卡,与很多时间,那一般企业无法投入那么多钱去买显卡,怎么办? 通过RAG与本地部署来提升大模型的专业知识 R…...

数据库从安装到劝退

友好的安装是数据库使用的第一步 MySQL被称为5分钟数据库。是形容安装简单。事实也是如此。RPM一下可以就把几个包安装完毕了。一个单机情况下,5分钟是足够的。 其他数据库PostgreSQL也差不多是这样。 而Redis这种就更快了。所以这些才能流行。 曾经数据库中安装相…...

《基于Spring Boot+Vue的智慧养老系统的设计与实现》开题报告

个人主页:@大数据蟒行探索者 一、研究背景及国内外研究现状 1.研究背景 根据1982年老龄问题世界大会联合国制定的标准,如果一个国家中超过65岁的老人占全国总人口的7%以上,或者超过60岁的老人占全国总人口的10%以上,那么这个国家将被定义为“老龄化社会”[1]。 随着国…...

PHP转GO Go语言环境搭建(Day1) 常见问题及解决方案指南

Go语言环境搭建(Day1)整理的 常见问题及解决方案指南: Go环境搭建问题排查手册 一、安装阶段问题 问题现象原因分析解决方案安装包下载失败网络问题或官网访问慢使用国内镜像下载:- Go中文网提示"Access Denied"Windows系统权限不足1. 右键安装包选择"以管理…...

VLLM专题(三十九)—自动前缀缓存(二)

前缀缓存(Prefix Caching)是一种在LLM推理中广泛使用的优化技术,旨在避免冗余的提示词(prompt)计算。其核心思想很简单——我们缓存已处理请求的键值缓存(kv-cache)块,并在新请求的前缀与之前请求相同时重用这些块。由于前缀缓存几乎是一种“免费的午餐”,并且不会改变…...

C语言每日一练——day_12(最后一天)

引言 针对初学者,每日练习几个题,快速上手C语言。第十二天。(最后一天,完结散花啦) 采用在线OJ的形式 什么是在线OJ? 在线判题系统(英语:Online Judge,缩写OJ&#xff0…...

HAL库编程知识点---Can.c和Driver_can.c分层开发

在一个工程中,通常会把对CAN外设的操作分成底层和上层两个部分,从而提高代码的模块化和可维护性。一般来说: can.c 通常由硬件抽象层(HAL)或者自动生成工具(如 CubeMX)提供或生成。主要负责CAN硬…...

L2TP实验 作业

拓扑图 实验需求 让FW1(PPPoE Client)模拟拨号用户,向内部服务器发送建立拨号连接的请求,并保证连通 实验步骤 安全区域 firewall zone trust add int g1/0/0 策略 security-policy default action permit NAS int g1/…...

算法模型从入门到起飞系列——递归(探索自我重复的奇妙之旅)

文章目录 前言一、递归本质1.1 递归的要素1.2 递归特点 二、递归&迭代2.1 递归&迭代比较2.2 递归&迭代如何实现相同功能2.2.1 递归实现2.2.2 迭代实现2.2.3 性能对比 三、优雅的递归理解3.1 阶乘计算分解3.2 [DFS](https://blog.csdn.net/qq_38315952/article/deta…...

Netty源码—1.服务端启动流程二

大纲 1.服务端启动整体流程及关键方法 2.服务端启动的核心步骤 3.创建服务端Channel的源码 4.初始化服务端Channel的源码 5.注册服务端Channel的源码 6.绑定服务端端口的源码 7.服务端启动流程源码总结 5.注册服务端Channel的源码 (1)注册服务端Channel的入口 (2)注册…...

Python OCR文本识别详细步骤及代码示例

光学字符识别(OCR)是将图像中的文字转换为可编辑文本的技术。在Python中,我们可以利用多种库实现OCR功能。本文将详细介绍使用Tesseract和EasyOCR进行文本识别的步骤,并提供完整的代码示例。 一、OCR简介 OCR(Optical…...

springmvc 框架学习

什么是 SpringMVC 框架 Spring MVC 是 Spring 框架的核心模块之一,基于 Java Servlet API 构建的 Web 层解决方案。它实现了 MVC 设计模式(Model-View-Controller),专为开发灵活、松耦合的 Web 应用程序而设计。 在控制层框架历…...