Alibaba 开发十年,写出这本“MQ 技术手册”,看完我愣住了

前言
消息队列已经逐渐成为企业 IT 系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步 RPC 的主要手段之一。虽然说,目前状况是 Kafka 更为火热,但更为广泛的应该还属老牌的 RabbtiMQ 和 Alibaba 自主研发的 RocketMQ。
关于 MQ 相关的内容,Alibaba 肯定还是很有话语权的,尤其是关于 RocketMQ 的使用,所以今天我们要分享的内容,实际上就是阿里 P8 的十年开发经验总结,写出来的这本“RabbitMQ+RocketMQ”技术手册,看完你也不得不感叹这份极品手册啊!
由于文章篇幅有限,下文中的内容只展示这份手册的目录以及部分内容截图,若你需要完整版的 pdf,可免费提供给你,添加微信:mxh5261。

一、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 到底掌握多少?会用到什么程度了呢?如果还不够,那就不能停下学习的脚步。
以上这份 MQ 手册肯定是 100%免费分享给大家的,添加微信:mxh5261 。
版权声明: 本文为 InfoQ 作者【Java~~~】的原创文章。
原文链接:【http://xie.infoq.cn/article/1c901a619e77631cdb7d39f40】。未经作者许可,禁止转载。
评论