跳到主要内容

RabbitMQ

一、RabbitMQ 简介

1.1 什么是 RabbitMQ

1.2 RabbitMQ 的历史

1.3 RabbitMQ 的特点

  • 可靠性
  • 灵活的路由
  • 支持多协议
  • 多语言客户端
  • 管理界面
  • 插件机制

1.4 RabbitMQ 应用场景

二、RabbitMQ 核心概念

2.1 Producer(生产者)

2.2 Consumer(消费者)

2.3 Broker(代理)

2.4 Exchange(交换机)

  • Direct Exchange
  • Fanout Exchange
  • Topic Exchange
  • Headers Exchange

2.5 Queue(队列)

2.6 Binding(绑定)

2.7 Routing Key(路由键)

2.8 Connection(连接)

2.9 Channel(通道)

2.10 Virtual Host(虚拟主机)

三、AMQP 协议

3.1 AMQP 协议概述

3.2 AMQP 模型

3.3 AMQP 消息属性

3.4 AMQP 方法

四、RabbitMQ 安装部署

4.1 环境准备

  • Erlang 安装
  • RabbitMQ 安装

4.2 Windows 安装

4.3 Linux 安装

4.4 Docker 部署

4.5 配置文件

4.6 插件管理

4.7 管理界面

五、RabbitMQ 工作模式

5.1 简单模式(Hello World)

5.2 工作队列模式(Work Queue)

  • 轮询分发
  • 公平分发

5.3 发布订阅模式(Publish/Subscribe)

5.4 路由模式(Routing)

5.5 主题模式(Topics)

5.6 RPC 模式

六、RabbitMQ 进阶特性

6.1 消息确认机制

  • 自动确认
  • 手动确认
  • 批量确认

6.2 消息持久化

  • 队列持久化
  • 消息持久化

6.3 消息 TTL(Time To Live)

6.4 死信队列(DLQ)

  • 死信概念
  • 死信来源
  • 死信队列配置

6.5 延迟队列

  • 延迟队列实现
  • 插件方式
  • TTL 方式

6.6 优先级队列

6.7 消息去重

七、RabbitMQ 集群

7.1 集群架构

  • 内存节点
  • 磁盘节点
  • 集群模式

7.2 集群搭建

7.3 镜像队列

7.4 负载均衡

7.5 高可用配置

八、RabbitMQ 管理

8.1 管理界面

  • 连接管理
  • 通道管理
  • 队列管理
  • 交换机管理
  • 用户管理

8.2 命令行工具

8.3 监控指标

8.4 告警配置

九、RabbitMQ 客户端开发

9.1 Java 客户端

  • 连接创建
  • 消息发送
  • 消息消费
  • 确认机制

9.2 Python 客户端

9.3 Go 客户端

9.4 Spring Boot 集成

  • 依赖配置
  • 配置类
  • 生产者配置
  • 消费者配置
  • 监听器

十、RabbitMQ 性能优化

10.1 连接池优化

10.2 通道复用

10.3 批量处理

10.4 消息大小优化

10.5 预取数量设置

10.6 队列优化

十一、RabbitMQ 故障处理

11.1 连接断开处理

11.2 消息重试

11.3 死信处理

11.4 集群故障转移

十二、RabbitMQ 安全

12.1 用户权限管理

12.2 虚拟主机隔离

12.3 SSL/TLS 加密

12.4 网络安全

十三、RabbitMQ 最佳实践

13.1 消息设计原则

13.2 队列设计原则

13.3 消费者设计原则

13.4 错误处理原则

13.5 监控告警

十四、RabbitMQ 实战案例

14.1 订单系统

14.2 日志收集

14.3 异步任务处理

14.4 分布式事务

十五、RabbitMQ 常见问题

15.1 消息丢失问题

15.2 消息重复消费

15.3 消息顺序性

15.4 消息积压

15.5 性能问题