跳到主要内容

RocketMQ

一、RocketMQ 简介

1.1 什么是 RocketMQ

1.2 RocketMQ 的历史

1.3 RocketMQ 的特点

  • 高性能
  • 高可用
  • 低延迟
  • 海量堆积
  • 分布式
  • 事务消息

1.4 RocketMQ vs Kafka vs RabbitMQ

1.5 RocketMQ 应用场景

二、RocketMQ 核心概念

2.1 Producer(生产者)

2.2 Consumer(消费者)

2.3 NameServer(名称服务器)

2.4 Broker(代理服务器)

2.5 Topic(主题)

2.6 Message Queue(消息队列)

2.7 Message(消息)

  • 消息体
  • 消息属性
  • 消息 ID
  • Tag(标签)

2.8 Message Group(消息组)

2.9 Offset(偏移量)

三、RocketMQ 架构

3.1 整体架构

3.2 部署架构

3.3 数据存储架构

3.4 集群架构

四、RocketMQ 安装部署

4.1 环境准备

  • JDK 安装
  • Maven 安装

4.2 源码编译

4.3 单机部署

4.4 集群部署

4.5 Docker 部署

4.6 配置文件详解

4.7 启动和停止

五、RocketMQ 命令行工具

5.1 Admin Tool

5.2 MQAdmin 命令

  • Topic 管理
  • Broker 管理
  • 消息查询
  • 消息发送

六、RocketMQ 生产者

6.1 生产者工作原理

6.2 消息发送方式

  • 同步发送
  • 异步发送
  • 单向发送

6.3 消息类型

  • 普通消息
  • 顺序消息
  • 延迟消息
  • 事务消息

6.4 发送策略

  • 轮询策略
  • 最小投入策略
  • 自定义策略

6.5 失败重试

6.6 批量发送

七、RocketMQ 消费者

7.1 消费者模型

  • Push 消费者
  • Pull 消费者

7.2 消费模式

  • 集群模式
  • 广播模式

7.3 消费者组

7.4 消息过滤

  • Tag 过滤
  • SQL92 过滤

7.5 消息顺序消费

7.6 消息重试

7.7 死信队列

7.8 Offset 管理

八、RocketMQ 消息类型

8.1 普通消息

8.2 顺序消息

  • 全局顺序
  • 分区顺序

8.3 延迟消息

  • 延迟级别
  • 使用场景

8.4 事务消息

  • 事务消息原理
  • 使用场景
  • 实现步骤

8.5 批量消息

九、RocketMQ 存储机制

9.1 消息存储

  • CommitLog
  • ConsumeQueue
  • IndexFile

9.2 存储结构

9.3 刷盘机制

  • 同步刷盘
  • 异步刷盘

9.4 主从复制

  • 同步复制
  • 异步复制

9.5 消息清理

十、RocketMQ 高可用

10.1 NameServer 高可用

10.2 Broker 高可用

  • Master-Slave 模式
  • 多 Master 模式
  • 多 Master 多 Slave 模式

10.3 读写分离

10.4 故障切换

十一、RocketMQ 性能优化

11.1 Producer 优化

11.2 Consumer 优化

11.3 Broker 优化

11.4 网络优化

11.5 JVM 优化

11.6 操作系统优化

十二、RocketMQ 监控

12.1 自带监控

12.2 RocketMQ Console

12.3 Prometheus 监控

12.4 监控指标

12.5 告警配置

十三、RocketMQ 安全

13.1 ACL 权限控制

13.2 TLS 加密

13.3 访问控制

十四、RocketMQ 客户端开发

14.1 Java 客户端

  • Producer API
  • Consumer API
  • 配置说明

14.2 Spring Boot 集成

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

14.3 Go 客户端

14.4 Python 客户端

十五、RocketMQ 实战案例

15.1 订单系统

15.2 日志收集

15.3 分布式事务

15.4 削峰填谷

十六、RocketMQ 最佳实践

16.1 Topic 设计

16.2 Tag 设计

16.3 生产者配置

16.4 消费者配置

16.5 集群规划

十七、RocketMQ 常见问题

17.1 消息丢失

17.2 消息重复

17.3 消息顺序

17.4 消息积压

17.5 消费失败

17.6 性能问题

十八、RocketMQ 运维

18.1 日常维护

18.2 集群扩容

18.3 数据迁移

18.4 版本升级

18.5 故障排查