跳到主要内容

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 性能问题​