2020年处于移动互联网的下半场,各种技术层出不穷,虽然数据也在爆发式增长,但是高并发、高吞吐已经不再是首要的痛点,稳定、可靠才是王道。

RocketMQ作为一款高可靠、低延迟、高并发、支持海量Topic的分布式消息中间件,服务于阿里巴巴、VIPKID、滴滴出行、微众银行、华为等国内各大企业。在阿里巴巴内的业务涵盖了阿里巴巴全部的业务,也是双11 的核心链路支撑者之一。笔者所在公司选择它,也是由于RocketMQ具有高可靠、吞吐高的特点。

书籍是人类进步的阶梯

适合群体

  • 对RocketMQ有了解、使用的经验后,想要深入源码而无从下手的人员。
  • 希望学习消息队列和分布式系统的开发人员。
  • 企业消息中间件维护和支持人员。
  • RocketMQ代码贡献者。
  • 支持开源的技术工作者。

本书章节内容

第1章Roket和综述

什么是消息队列,消息队列到底解决了什么问题?

本章主要内容如下:

  • 消息队列入门级介绍,希望大家在全面了解RocketMQ之前,对消息队列这个词有一个大致的印象,初步掌握其出现的必要性与合理性。
  • 通过介绍一个场景引入消息队列的概念。
  • 主流消息队列组件的比较。
  • Apache RocketMQ的发展史和未来。

 

第2章Rocket的生产者原理和最佳实践

对于消息队列,生产者通常是入门第一个接触的对象,用于生产消息给消费者消费。本章通过介绍生产者实现类的属性、方法,引出生产者的启动过程、高可靠的实现方式等,主要讲解内容如下:

  • RocketMQ支持3种消息:普通消息(并发消息)、顺序消息、事务消息。
  • RocketMQ支持3种发送方式:同步发送、异步发送、单向发送。
  • RocketMQ生产者最佳实践和总结。

 

第3章 RocketM的消费流程和最佳实践

消费者是相对第2章的生产者而言的,逻辑更加复杂。本章主要讲解的核心内容有:

  • 消费者默认的两个实现类。
  • 消费者的启动过程。
  • 消息的消费过程。
  • 可靠消费。
  • 消费进度保存过程。
  • 消息过滤。

 

第4章 Eocket的架构和部署最佳实践

RocketMQ 4.7.0是当前的最新版本,主要增加了消息轨迹、基于Dledger的副本机制。而我们目前介绍的是4.2.0版本,整体架构、部署与RocketMQ 4.7.0版本完全一致。本章的核心内容如下:

  • RocketMQ体系结构。
  • 常见的部署拓扑关系。
  • 生产环境Namesrv、Broker、Console部署及验证部署结果。

 

第5章Namesrv

Namesrv 之于RocketMQ,即Zookeeper 之于Kafka,即服务注册中心之于微服务。Namesrv在RocketMQ体系中是一个Topic路由注册和管理、Broker注册和发现的管理者。

本章主要介绍了:

  • Topic路由数据结构。
  • Broker注册、发现及剔除机制。
  • Namesrv启动、停止及执行过程。

 

第6章Br oker存储机制

Broker是RocketMQ体系中的核心组件之一,存储是Broker的核心功能之一,决定整个RocketMQ体系的吞吐性能、可靠性和可用性。本章主要从存储角度讲解Broker的几方面内容:

  • Broker存储概述。
  • Broker数据存储机制。
  • Broker数据索引存储机制。
  • Broker过期数据删除机制。
  • Broker主从数据同步机制。
  • Broker关机后数据恢复机制。

 

第7章Rocket和特性―—事务消息与延迟消息机制

如何优雅地解决分布式事务和延迟消息,一直都是让开发人员头疼的问题。特别是延迟消息(也叫定时消息),在消息队列组件中或多或少地会依赖一些外部“定时任务”组件。而RocketMQ同时集成了这两个功能,以非常方便、实用的方式解决了这两个问题。

本章主要内容如下:

  • 事务消息概述和实现机制。
  • 延迟消息概述和实现机制。

 

第8章RocketM构源代码阅读

为什么读者需要阅读RocketMQ源代码?笔者就自己的经验和理解做一下解答。

第一,解决公司实际场景中遇到的问题,比如异步、削峰。

第二,知其然,知其所以然。了解源代码后,在实际使用RocketMQ中能快速定位并解决问题,同时还可以避免以后遇到雷同的问题。

第三,取之于人,用之于人。将自己的思维转化为贡献代码,帮助RocketMQ社区和其他使用者解决他们的实际问题。

本章将从以下三方面讲解如何阅读源代码:

  • RocketMQ源代码结构说明。
  • RocketMQ源代码下载、编译。
  • 举例说明如何阅读RocketMQ源代码。

 

第9章RocketMQ企业最佳实践

前面几章介绍了RocketMQ各个组件的功能和基本原理,本章主要介绍RocketMQ如何在企业落地,主要内容如下:

  • RocketMQ集群管理。
  • RocketMQ集群监控和报警。
  • RocketMQ集群测试环境实践。
  • Spring和Python如何接入RocketMQ ?

 

需要获取这份资料的小伙伴可以直接扫码

RocketMQ不单单是一个技术,它还是一个体系。一个可用的RocketMQ体系简单总结如图4-1所示。

 

Namesrv是RocketMQ的大脑,围绕这个“大脑”是如何设计和架构RocektMQ的呢?如图5-1所示。

 

在了解了Master-Slave读写分离机制后,我们接着讲解DirectMemory-Page Cache的读写分离机制,如图6-19所示。

 

ReputMessageService服务启动后的执行过程如图6-24所示。