这一部分主要是理解RocketMQ一些重要的高性能核心设计。我们知道,在MQ这个领域, RocketMQ实际上是属于一个后起之秀。RocketMQ除了能够支撑MQ的业务功能之外,还有更重要的一部分就是对于高吞吐、高性能、高可用的三高架构设计。这些设计的思想,很多都是我们去处理三高问题时可以学习借鉴的经验。
另外,与RabbitMQ和Kafka这些外国的产品不同,RocketMQ作为国人开发的产品,很多核心实现机制其实是非常符合我们的思想的。所以,这次,我们直接从源码入手,来梳理RocketMQ的一些核心的三高设计。
一、源码环境搭建
1、主要功能模块
RocketMQ的官方Git仓库地址:https://github.com/apache/rocketmq 可以用git把项目clone下来或者直接下载代码包。
也可以到RocketMQ的官方网站上下载指定版本的源码: http://rocketmq.apache.org/dowloading/releases/
源码下很多的功能模块,很容易让人迷失方向,我们只关注下几个最为重要的模块:
broker: Broker 模块(broke 启动进程)
client :消息客户端,包含消息生产者、消息消费者相关类
example: RocketMQ 例代码
namesrv:NameServer模块
store:消息存储模块
remoting:远程访问模块
我的
哈哈