【RabbitMQ】-- 核心概念
文章目录1. RabbitMQ核心概念1.1 生产者Producer和消费者Consumer1.2 Connection和Channel1.3 Vrtual host1.4 Queue1.5 Exchange1.5.1 Rabbit MQ交换机的四种类型1.5.2 Routing Key 和 Biding Key1.6 AMQP协议更多RabbitMQ相关知识 RabbitMQ专栏1. RabbitMQ核心概念RabbitMQ 是一个消息中间件也是一个生产者消费者模型它负责接收、存储并转发消息。1.1 生产者Producer和消费者ConsumerProducer消息的生产者是RabbitMQ Server的客户端向RabbitMQ发送消息。Consumer消息的消费者是RabbitMQ Server的客户端从RabbitMQ中接收消息。1.2 Connection和Channel1Connection:连接。是客户端和 RabbitMQ 服务器之间的一个TCP 连接这个连接是消息传递的基础它负责传输客户端和服务器之间的所有数据和控制信息。2Channel:信道、通道。Channel 是在 Connection 之上的抽象层。在RabbitMQ中一个TCP连接中即一个 Connection 中可以有多个 Channel每个 Channel 都是独立的虚拟连接消息的发送和接收都是基于 Channel 的。channel 的主要作用是将消息的读写操作复用到同一个 TCP 连接上这样就可以减少建立连接、关闭连接的开销从而提高系统的性能。1.3 Vrtual hostVrtual host 是虚拟主机这是一个虚拟概念。它为消息队列提供了一种逻辑上的隔离机制。对于 RabbitMQ 而言一个 Broker Server 上可以存在多个 Vrtual host。当多个不同的⽤⼾使⽤同⼀个 RabbitMQ Server 提供的服务时可以虚拟划分出多个 Vrtual host每个⽤⼾在⾃⼰的 Vrtual host 创建 exchange/queue 等 。类似于MySQL中数据库的概念。1.4 QueueQueue是队列。是RabbitMQ的内部对象用于存储消息。一个队列可以被多个消费者订阅。一个消费者可以订阅多个队列。1.5 ExchangeExchange 是交换机。 交换机是消息到达 Broker 的第一站它负责接收生产者发送到RabbitMQ的消息并根据特定的规则把这些消息路由到一个或多个队列中。交换机只负责转发消息不具备存储消息的能力因此如果没有任何队列与交换机进行绑定或者没有符合路由规则的队列消息会丢失。1.5.1 Rabbit MQ交换机的四种类型不同的交换机类型就对应着不同的工作模式1.Fanout:广播。将消息交给所有绑定到交换机的队列(发布/订阅模式)。2.Dirext顶向。将消息交给符合指定 routing key 的队列(routing模式)。3.Topic通配符。将消息交给符合 routing pattern 的队列(通配符模式)。4.Headers:headers类型的交换机不依赖于路由的匹配规则来路由消息而是根据发送消息内容中的headers属性来进行匹配。这种交换机的性能很差也不实用。1.5.2 Routing Key 和 Biding Key1Routing Key路由键。生产者将消息发送给交换机时指定的一个字符串用来告诉交换机应该如何处理这个消息.2Biding Key绑定键。RabbitMQ 中通过 Binding(绑定键) 将交换器与队列关联起来, 在绑定的时候⼀般会指定⼀个Binding Key, 这样 RabbitMQ 就知道如何正确地将消息路由到队列了.生产者在发送消息的时候会携带一个Routing Key交换机就会将消息发送给 Routing Key 和 Binding Key 能匹配上的队列。一个队列和交换机之间可以有多个 Binding Key如果匹配上一个交换机就会消息发给该队列。1.6 AMQP协议AMQPAdvanced Message Queuing Protocol是一种高级消息队列协议, AMQP定义了一套确定的消息交换功能, 包括交换器(Exchange), 队列(Queue) 等。这些组件共同工作, 使得生产者能够将消息发送到交换器 然后由队列接收并等待消费者消费. AMQP还定义了一个网络协议, 允许客户端应用通过该协议与消息代理和AMQP模型进行交互通信。RabbitMQ是AMQP协议的实现。

相关新闻

基于SpringBoot的学生绩点学分管理系统的设计和实现(源码+LW+调试文档)

基于SpringBoot的学生绩点学分管理系统的设计和实现(源码+LW+调试文档)

目录: 完整视频演示: 系统架构: 程序运行截图: 核心代码参考: 数据库sql: 项目技术介绍: java介绍: Mysql数据库介绍: 为什么选择我: 获取源码&am…

2026/7/24 21:12:43阅读更多 →
终极指南:如何用免费卡牌批量生成器快速制作专业桌游卡牌

终极指南:如何用免费卡牌批量生成器快速制作专业桌游卡牌

终极指南:如何用免费卡牌批量生成器快速制作专业桌游卡牌 【免费下载链接】CardEditor 一款专为桌游设计师开发的批处理数值填入卡牌生成器/A card batch generator specially developed for board game designers 项目地址: https://gitcode.com/gh_mirrors/ca/C…

2026/7/24 21:12:43阅读更多 →
Legacy iOS Kit终极指南:如何为经典iOS设备实现系统降级与越狱

Legacy iOS Kit终极指南:如何为经典iOS设备实现系统降级与越狱

Legacy iOS Kit终极指南:如何为经典iOS设备实现系统降级与越狱 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-K…

2026/7/24 21:10:43阅读更多 →
如何高效批量下载抖音无水印视频?douyin-downloader 全功能解析

如何高效批量下载抖音无水印视频?douyin-downloader 全功能解析

如何高效批量下载抖音无水印视频?douyin-downloader 全功能解析 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallb…

2026/7/24 22:32:57阅读更多 →
Hermes-Agent——(四)Prompt分层构建与缓存

Hermes-Agent——(四)Prompt分层构建与缓存

上篇聊了工具执行策略,这篇聊一个更现实的问题——钱。 每次调大模型 API,对话历史里的 System Prompt 都要原封不动发一遍。一轮长对话跑下来,光 System Prompt 重复传输的 token 量就很可观——全价。 但 Anthropic 有个 Prompt Caching 机…

2026/7/24 22:32:57阅读更多 →
终极指南:如何用本地图片搜索引擎快速找到相似图片

终极指南:如何用本地图片搜索引擎快速找到相似图片

终极指南:如何用本地图片搜索引擎快速找到相似图片 【免费下载链接】ImageSearch 基于.NET10的本地硬盘千万级图库以图搜图案例Demo和图片exif信息移除小工具分享 项目地址: https://gitcode.com/gh_mirrors/im/ImageSearch 你是否曾经在成千上万的图片文件中…

2026/7/24 22:32:57阅读更多 →
从单体 Agent 到 Agent 平台:一次架构迁移的技术方案和组织挑战

从单体 Agent 到 Agent 平台:一次架构迁移的技术方案和组织挑战

从单体 Agent 到 Agent 平台:一次架构迁移的技术方案和组织挑战 一、深度引言与场景痛点 2024 年初我们的 AI 应用还只有一个 Agent — 一个智能客服机器人。用了大半年反响不错,业务部门开始来提需求:法务要一个合同审查 Agent、HR 要一个简…

2026/7/24 22:32:56阅读更多 →
HarmonyOS7 串联动画实战:用 setTimeout 编排动画序列

HarmonyOS7 串联动画实战:用 setTimeout 编排动画序列

文章目录前言效果预览布局思路逐步实现定义独立的动画状态方块渲染与动画绑定核心:setTimeout 串联动画波浪效果的嵌套 setTimeout关键代码踩坑记录坑1:延迟时间太短会导致动画"吞掉"坑2:快速连续点击会出bug坑3:animat…

2026/7/24 22:32:56阅读更多 →
【Linux】用户管理和配置免密登陆

【Linux】用户管理和配置免密登陆

【Linux】用户管理和配置免密登陆【一】用户管理【1】新增用户(1)检查用户是否存在(2)如果用户不存在,创建用户(3)设置密码(修改密码)【3】删除用户【4】权限管理&#x…

2026/7/24 22:30:56阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 0:58:53阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 0:58:53阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 0:58:53阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:06阅读更多 →
【LeetCode 54】螺旋矩阵

【LeetCode 54】螺旋矩阵

问题描述: 解法: 1、模拟(参考自【LeetCode 54】螺旋矩阵-CSDN博客) int *spiralOrder(int **matrix, int matrixSize, int *matrixColSize, int *returnSize) {static const int dirs[4][2] {{0, 1}, {1, 0}, {0, -1}, {-1, …

2026/7/24 0:00:06阅读更多 →
2026 WAIC:模型隐身、智能体疯野,厂商竞赛聚焦办公场景与商业闭环

2026 WAIC:模型隐身、智能体疯野,厂商竞赛聚焦办公场景与商业闭环

知春路不相信模型领先今年WAIC大会,昔日AI六小龙来了五家,分别是Kimi、阶跃星辰、Minimax、百川智能、零一万物。连放弃基模的百川和零一万物都来了,唯一缺席的竟是近几个月来风光无限的智谱。(DeepSeek一直不参加)WAI…

2026/7/24 0:00:06阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/23 22:58:43阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/24 19:00:40阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/24 19:00:40阅读更多 →