RabbitMQ 消息队列完全教程
RabbitMQ 消息队列完全教程
一套系统性的 RabbitMQ 学习路径,涵盖基础概念、架构原理、集群运维、性能调优及生产最佳实践。
本教程适合谁
| 读者类型 | 预期收获 |
|---|---|
| 后端开发工程师 | 掌握 RabbitMQ 的使用方式、消息模式、生产者/消费者开发技巧 |
| 架构师 | 理解 RabbitMQ 架构设计、集群方案、与其他 MQ 的选型对比 |
| 运维工程师 | 掌握部署、监控、告警、故障排查、容量规划 |
| 全栈开发者 | 快速在项目中集成 RabbitMQ,实现异步通信和解耦 |
前置知识
- 基本的编程能力(示例代码主要使用 Python / Java / Go)
- 了解分布式系统的基本概念
- 有 Docker 基础(部分章节涉及容器化部署)
教程目录
第一部分:基础入门
| 章节 | 标题 | 核心内容 |
|---|---|---|
| 第 1 章 | RabbitMQ 概述 | AMQP 协议、与 Kafka/Redis 对比、适用场景 |
| 第 2 章 | 安装与部署 | Docker 部署、管理插件、用户配置、集群初始化 |
| 第 3 章 | 核心架构 | Exchange、Queue、Binding、Channel、Connection、Virtual Host |
第二部分:核心组件深入
| 章节 | 标题 | 核心内容 |
|---|---|---|
| 第 4 章 | 交换机详解 | Direct/Fanout/Topic/Headers、死信/延迟/优先级交换机 |
| 第 5 章 | 队列详解 | 持久化、排他、自动删除、死信、优先级、仲裁队列 |
| 第 6 章 | 生产者开发 | 确认模式、事务、发布确认、批量、异步确认 |
| 第 7 章 | 消费者开发 | 手动确认、自动确认、QoS、预取、拒绝、重试 |
第三部分:路由与高级特性
| 章节 | 标题 | 核心内容 |
|---|---|---|
| 第 8 章 | 消息路由 | 绑定键、主题匹配、头匹配、死信路由、延迟消息 |
| 第 9 章 | 集群与高可用 | 镜像队列、仲裁队列、节点管理、网络分区处理 |
| 第 10 章 | 插件生态 | 管理 UI、延迟插件、Shovel、Federation、Prometheus |
第四部分:高级特性与生态
| 章节 | 标题 | 核心内容 |
|---|---|---|
| 第 11 章 | RabbitMQ Streams | 追加日志、流消费者、与 Kafka 对比、性能基准 |
| 第 12 章 | 监控与告警 | 管理 API、Prometheus 集成、Grafana 看板、告警规则 |
| 第 13 章 | 消息模式 | RPC、发布订阅、工作队列、路由、延迟、优先级 |
第五部分:实战与运维
| 章节 | 标题 | 核心内容 |
|---|---|---|
| 第 14 章 | Docker 与 Kubernetes | Docker Compose、集群部署、持久化、健康检查、K8s |
| 第 15 章 | 故障排查 | 连接问题、内存/磁盘告警、网络分区、慢消费者 |
| 第 16 章 | 最佳实践 | 容量规划、安全加固、性能调优、运维 SOP、选型指南 |
如何使用本教程
- 初学者: 按顺序从第 1 章阅读到第 7 章,完成基础入门
- 有经验者: 直接跳转到感兴趣的章节,每章独立成文
- 运维人员: 重点关注第 9、12、14、15、16 章
- 架构师: 重点关注第 1、3、9、11、13、16 章
环境要求
| 组件 | 版本要求 |
|---|---|
| RabbitMQ | 3.13+(推荐 4.x) |
| Erlang/OTP | 26+ |
| Docker | 24.0+(可选) |
| Python | 3.10+(示例代码) |
| Java | 17+(示例代码) |
约定说明
- 💡 提示: 实用技巧和补充说明
- ⚠️ 注意: 需要特别留意的事项
- 🔥 最佳实践: 生产环境推荐做法
- 📌 业务场景: 真实业务中的应用场景
- 📖 扩展阅读: 深入学习的参考链接