为什么写这本书?
这篇书评可能有关键情节透露
经过了多年地参与海量用户、高并发系统设计后,我发现消息中间件这个领域已经上升到和缓存、存储一样重要性的位置。
RocketMQ作为国内非常多公司使用的消息中间件,其学习资料其实是不缺乏的。所涉及的书籍也不少。那为什么我觉得还需要一本新的书籍呢?其中的原因大体有3:
1. 市面上学习的资料大多还是面向源码分析为主,如果一个研发工程师需要深入RocketMQ的原理,无论它是去博客上趴资料还是去买已有的书籍,基本上绕不开去坑源码。作为过来人,我深知阅读源码是一件晦涩且略显枯燥的工作,市面上是缺乏一本既能达到源码级别的深度又能用通俗语言浅出的学习资料的,这是本书的一大宗旨——不读源码一样可以成为这个领域的专家
2. 头部的互联网公司因为有足够的用户、日活,其系统所面临的挑战和一般系统所面临的挑战是完成不一样的。这其中的很多架构设计、性能优化、服务治理等经验通常只会沉淀在内部的学习社区,外面的研发人员鲜有途径可以接触学习。本人在头部公司工作超过10年,希望能结合自身这些年海量系统架构设计的经验,通过这本书传达出一些通用的方法论、设计哲学。
3. 本人热衷于学习各类互联网的技术、架构,其中在公司内外也经常做技术的分享、直播等。对于如何把一门技术讲透、讲得容易接受有一定的经验,希望通过这本书系统的传达RocketMQ的设计精华,帮助更多的研发人员能了解到RocketMQ的精髓,甚至后续参与到社区的开发之中,帮助社区的进步发展。本书在叙事上遵循以下几个原则:
1. 由浅入深。书籍会分为实战、原理、进阶三篇由浅入深的进行叙事。祈求模拟出一个程序员学习一门新技术时候所经历的阶段:先学会怎么用,再了解原理,最后结合原理和业务场景进行高级的技术难题攻克。
2. 对比学习。本书内容大量横向对比了其他相关领域的知识,例如介绍消息模型的时候会对比Kafka 的原理,介绍事务消息的时候会列举分布式事务的解决方案等。通过横向对比的方式加深知识的吸收。
3. 思考。参考学生时代的课后题,每一个章节都会留下几套课后题,希望能通过这个方式引导读者的思考,加深对该章节内容的理解。




