You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

104 lines
3.0 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# RocketMQ
## 1. RocketMQ 基础
- 官方QuickStart: https://github.com/apache/rocketmq/tree/master/docs/cn
- 官方文档: https://rocketmq.apache.org/docs/
- 最新版本 4.9.4 【截止2022-7-20】
- 学习版本 4.3.0 【截止2022-7-20】
### 1.1 整体介绍
- RocketMQ是一款分布式、队列模型的消息中间件
- 特性:
- 支持分布式事物
- 支持集群模型、负载均衡、水平扩展能力
- 亿级别的消息堆积能力
- 采用零拷贝的原理、顺序写盘、随机读
- 丰富的API封装
- 代码优秀底层通信框架采用Netty NIO框架
- NameServer代替Zookeeper
- 集群无单点,可扩展,任意一点高可用,水平可扩展
- 消息失败重试机制,消息可查询
- 开源社区活跃、成熟度(经过双十一考验)
### 1.2 概念模型
- Producer: 消息生产者,负责生产消息,一般由业务系统负责产生消息
---
- Consumer: 消息消费者,负责消费消息,一般是后台系统负责异步消费
- Push Consumer: Consumer的一种, 需要向Consumer对象注册监听
- Pull Consumer: Consumer的一种, 需要主动请求Broker拉取消息
---
- Producer Group: 生产者集合, 一般用于发送一类消息
- Consumer Group: 消费者集合, 一般用于接收一类消息进行消费
---
- Broker: MQ消息服务(中转角色, 用于消息存储与生产消费转发)
- Message: TODO
### 1.3 源码工程讲解
- 编译完成的文件在 rocket-distribution/target/ 下
- RocketMQ的源码结构
- rocketmq-broker: 主要的业务逻辑, 消息收发, 主从同步, pagecache
- rocketmq-client: 客户端接口, 比如生产者和消费者
- rocketmq-example: 示例, 比如生产者和消费者
- rocketmq-common: 公用数据结构等等
- rocketmq-distribution: 编译模块, 编译输出等
- rocketmq-filter: 进行Broker过滤的不感兴趣的消息传输,减小带宽压力
- rocketmq-logappender, rocketmq-logging 日志相关
- rocketmq-namesrv Namesrv服务, 用于服务协调
- rocketmq-openmessaging 对外提供服务
- rocketmq-remoting 远程调用接口, 封装Netty底层通信
- rocketmq-util 提供一些公用的工具方法, 比如解析命令行参数
- rocketmq-store 消息存储
- rocketmq-test
- rocketmq-tools 管理工具, 比如有名的mqadmin工具
### 1.4 环境搭建
- 参考 RocketMQ使用手册.pdf
- ps: 内存大小至少也要1GB
- ps: 先启动NameSrv 再启动Broker
- ps: 测试使用1个配置文件即可
### 1.5 RocketMQ 控制台使用
- RocketMQ 扩展组件: https://github.com/apache/rocketmq-externals
- 可以集成控制台,修改控制台即可
- 集成SpringBoot也在这里
## 2. RocketMQ 生产者核心研究
## 3. RocketMQ 消费者核心研究
## 4. RocketMQ 核心原理研究
## 5. 双主双从部署
## 6. 购物车、订单与支付场景抗压实战 -> 可以移步到
## 7. RocketMQ分布式事务消息
## 8. RocketMQ顺序消费与微服务解耦
## 9. 数据过滤与性能提升