前言

在当今的企业IT系统中,消息队列已然成为了内部通信的核心工具。它拥有如低耦合、可靠投递、广播、流量控制和最终一致性等多项功能,并已成为异步RPC的主要手段。尽管当前Kafka备受瞩目,但更广泛应用的还要数老牌的RabbitMQ和Alibaba自主研发的RocketMQ。

而关于MQ,Alibaba无疑有着丰富的经验和话语权,尤其是关于RocketMQ的使用。今天,我们要分享的正是阿里P8的十年开发经验总结,这份总结凝结在了“RabbitMQ+RocketMQ”技术手册中。读完之后,你定会感叹这份手册的精湛与独特!

由于平台文章篇幅限制,细节内容过多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!需要的朋友可在文章末尾获取资料

bb8a72defd37a8dbe2feaad1262509b9.jpeg

一、RabbitMQ部分

1.RabbitMQ简介及入门

093fce8a64fe4721ddd2404e572446a0.jpeg bbaac43f2f21cdc8e3213110c2816ffc.jpeg

2.客户端开发向导

  • 连接RabbitMQ

  • 使用交换器和队列

  • 发送消息

  • 消费消息

  • 消费端的确认与拒绝

  • 关闭连接

14c5948851df54705148de2e183ae184.jpeg fd48623979cde4843e81b2cd69baf86b.jpeg

3.RabbitMQ进阶

  • 消息何去何从

  • 过期时间(TTL)

  • 死信队列

  • 延迟队列

  • 优先级队列

  • RPC实现

  • 持久化

  • 生产者确认

  • 消费端要点介绍

  • 消息传输保障

4d2e05a74bc9f17dec4abfa7b2fb771f.jpeg 6b46b7eb34ab9a805440204a41220237.jpeg

4.RabbitMQ管理

  • 多租户与权限

  • 用户管理

  • Web端管理

  • 应用与集群管理

  • 服务端状态

  • HTTPAPI接口管理

a39a7f533987084be3847c1c88fe1161.jpeg

5.RabbitMQ配置

  • 环境变量

  • 配置文件

  • 参数及策略

9b7e8cf9788576100b3123e8fa790277.jpeg be370fe361eacd69be9b3a904557c103.jpeg

6.RabbitMQ运维

  • 集群搭建

  • 查看服务日志

  • 单节点故障恢复

  • 集群迁移

  • 集群监控

11e15c430d539fc72d728897b8e15bcd.jpeg 717ae572b1bb50d19f301b59df054ae4.jpeg

7.跨越集群的界限

  • Federation

  • Shovel

b2d1848321a84c5787296ed962ae63ac.jpeg 08337eec2c09d58add7699ad836d3345.jpeg

8.RabbitMQ高阶

  • 内存及磁盘告警

  • 流控

  • 镜像队列

4c9cf925d8cd94ec343b40769d91f543.jpeg 009540a1e37704d086c1805c8d679696.jpeg

9.网络分区

  • 网络分区的意义

  • 网络分区的判定

  • 网络分区的模拟

  • 网络分区的影响

  • 手动处理网络分区

  • 自动处理网络分区

  • 案例:多分区情形

2b552966fb8cf4758d224776d9eb1819.jpeg 9592dfb7f2541f820bbca988f00aee39.jpeg

10.RabbitMQ扩展

  • 消息追踪

  • 负载均衡

6b1bdc3e9cf01bc31b095723a253c354.jpeg 32180bc7ba8b5b78c88bbe3b2d062d6d.jpeg

二、RocketMQ部分

1.阅读源代码前的准备

  • 获取和调试RocketMQ的源代码

  • RocketMQ源代码的目录结构

  • RocketMQ的设计理念和目标

a05e7c92411dce5a5a816ed2cc37640d.jpeg e84f15400fba5804298ce94f24cd90b0.jpeg

2.RocketMQ路由中心NameServer

  • NameServer架构设计

  • NameSenver启动流程

  • NameSenve路由注册、故障剔除

16007843b9c94573709a3b5c9e8b4fb8.jpeg b1c60863e611d89f4565b39b6f02a7b6.jpeg

3.RocketMQ消息发送

  • 漫谈RocketMQ消息发送

  • 认识RocketMQ消息

  • 生产者启动流程

  • 消息发送基本流程

  • 批量消息发送

709a7ce7d7319f36b8babbfaac19b112.jpeg 0a9b0e21228d0351e39df42bdc7ba27c.jpeg

4.RocketMQ消息存储

  • 存储概要设计

  • 初识消息存储

  • 消息发送存储流程

  • 存储文件组织与内存映射

  • RocketMQ存储文件

  • 实时更新消息消费队列与索引文

  • 消息队列与索引文件恢复

  • 文件刷盘机制

  • 过期文件删除机制

eaeec00654c84bbcf0a0a4f01e69ae38.jpeg 7868e4897305fc01f715f48dcd7225d4.jpeg

5.RocketMQ消息消费

  • RocketMQ消息消费概述

  • 消息消费者初探

  • 消费者启动流程

  • 消息拉取

  • 消息队列负载与重新分布机制

  • 消息消费过程

  • 定时消息机制

  • 消息过滤机制

  • 顺序消息

5b10175281bc72c6cedf131fbad09c71.jpeg 066f2e6d3cca83baf753cb6d4e33572f.jpeg

6.消息过滤FilterServer

  • ClassFilten运行机制

  • FilterServer注册剖析

  • 类过滤模式订阅机制

  • 消息拉取

56f3f17ec282de4154176bd59b504b8a.jpeg 9f7ae21e14975b4a8ad6fdb1f91b1438.jpeg

7.RocketMQ主从同步(HA)机制

  • RocketMQ主从复制原理

  • RocketMQ读写分离机制

986f459139c68e50015f082b94161d09.jpeg 297a9cb00e25ce3ac646bdae41c2119f.jpeg

8.RocketMQ事务消息

  • 事务消息实现思想

  • 事务消息发送流程

  • 提交或回滚事务

  • 事务消息回查事务状态

82b3bea75cf9548580a66d008195368a.jpeg a02fd2b6c53fc2ec769fc6bb4c9c80d1.jpeg

9.RocketMQ实战

  • 消息批量发送

  • 消息发送队列自选择

  • 消息过滤

  • 事务消息

  • Spring整合RocketMQ

  • Spring Cloud整合RocketMQ

  • RocketMQ监控与运维命令

  • 应用场景分析

f3c762a26b8b4345b1f1919e6ffc9cbb.jpeg ffd5559eeaea64d5d352ffc2767fa979.jpeg

总结

在现实世界中,业务系统间的沟通常常需要RabbitMQ或RocketMQ这样的中间件来帮助实现。它们像一座桥梁,连接着不同的系统,实现了复杂的消息路由功能。而对于大数据的实时计算场景,Kafka则成为不可或缺的工具。它以简单的消费模型和超高的吞吐量,满足了大数据时代对实时性的高要求。对于我们Java开发者来说,掌握RabbitMQ和RocketMQ无疑是至关重要的。它们是我们技能库中的重要武器,能帮助我们解决实际开发中的许多问题。


那么,你对自己在MQ方面的能力有多少了解呢?你是否已经掌握并能熟练运用它们了呢?如果你觉得自己的知识还不够深入,那么现在就是继续学习的最好时机。因为只有不断学习,我们才能跟上时代的步伐,成为更好的自己。所以,让我们一起继续探索MQ的世界,挖掘更多的知识和技能吧!

需要完整版PDF学习资源请扫描下方名片100%获取免费下载方式!

👇👇点击下方名片👇👇

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐