前言
消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。虽然说,目前状况是Kafka更为火热,但更为广泛的应该还属老牌的RabbtiMQ和Alibaba自主研发的RocketMQ。
关于MQ相关的内容,Alibaba肯定还是很有话语权的,尤其是关于RocketMQ的使用,所以今天我们要分享的内容,实际上就是阿里P8的十年开发经验总结,写出来的这本“RabbitMQ+RocketMQ”技术手册,看完你也不得不感叹这份极品手册啊!
Alibaba开发十年,写出这本“MQ技术手册”,看完我愣住了由于文章篇幅有限,下文中的内容只展示这份手册的目录以及部分内容截图,若你需要完整版的pdf,可直接点此处即可。
一、RabbitMQ部分
1.RabbitMQ简介及入门
2.客户端开发向导
- 连接RabbitMQ
- 使用交换器和队列
- 发送消息
- 消费消息
- 消费端的确认与拒绝
- 关闭连接
3.RabbitMQ进阶
- 消息何去何从
- 过期时间(TTL)
- 死信队列
- 延迟队列
- 优先级队列
- RPC实现
- 持久化
- 生产者确认
- 消费端要点介绍
- 消息传输保障
4.RabbitMQ管理
- 多租户与权限
- 用户管理
- Web端管理
- 应用与集群管理
- 服务端状态
- HTTPAPI接口管理
5.RabbitMQ配置
- 环境变量
- 配置文件
- 参数及策略
6.RabbitMQ运维
- 集群搭建
- 查看服务日志
- 单节点故障恢复
- 集群迁移
- 集群监控
7.跨越集群的界限
- Federation
- Shovel
8.RabbitMQ高阶
- 内存及磁盘告警
- 流控
- 镜像队列
9.网络分区
- 网络分区的意义
- 网络分区的判定
- 网络分区的模拟
- 网络分区的影响
- 手动处理网络分区
- 自动处理网络分区
- 案例:多分区情形
10.RabbitMQ扩展
- 消息追踪
- 负载均衡
二、RocketMQ部分
1.阅读源代码前的准备
- 获取和调试RocketMQ的源代码
- RocketMQ源代码的目录结构
- RocketMQ的设计理念和目标
2.RocketMQ路由中心NameServer
- NameServer架构设计
- NameSenver启动流程
- NameSenve路由注册、故障剔除
3.RocketMQ消息发送
- 漫谈RocketMQ消息发送
- 认识RocketMQ消息
- 生产者启动流程
- 消息发送基本流程
- 批量消息发送
4.RocketMQ消息存储
- 存储概要设计
- 初识消息存储
- 消息发送存储流程
- 存储文件组织与内存映射
- RocketMQ存储文件
- 实时更新消息消费队列与索引文
- 消息队列与索引文件恢复
- 文件刷盘机制
- 过期文件删除机制
5.RocketMQ消息消费
- RocketMQ消息消费概述
- 消息消费者初探
- 消费者启动流程
- 消息拉取
- 消息队列负载与重新分布机制
- 消息消费过程
- 定时消息机制
- 消息过滤机制
- 顺序消息
6.消息过滤FilterServer
- ClassFilten运行机制
- FilterServer注册剖析
- 类过滤模式订阅机制
- 消息拉取
7.RocketMQ主从同步(HA)机制
- RocketMQ主从复制原理
- RocketMQ读写分离机制
8.RocketMQ事务消息
- 事务消息实现思想
- 事务消息发送流程
- 提交或回滚事务
- 事务消息回查事务状态
9.RocketMQ实战
- 消息批量发送
- 消息发送队列自选择
- 消息过滤
- 事务消息
- Spring整合RocketMQ
- Spring Cloud整合RocketMQ
- RocketMQ监控与运维命令
- 应用场景分析
总结
实际上一般业务系统之间通信就是会采用RabbitMQ/RocketMQ,需要复杂的消息路由功能的支撑。大数据的实时计算场景才会采用Kafka,需要简单的消费模型,但是超高的吞吐量。
所以,作为Java开发,以RabbitMQ和RocketMQ为主来进行学习是比较重要的。最后,你再试问一下自己,对MQ到底掌握多少?会用到什么程度了呢?如果还不够,那就不能停下学习的脚步,点此处把笔记带走学习吧!
网友评论