RocketMQ源码环境搭建

195 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第3天,点击查看活动详情

RocketMQ源码环境搭建

这节开始对RocketMQ进行源码层面的研究,RocketMQ开发语言是Java,研究源码的第一步那当然是搭建源码环境,先把项目给跑起来,开始吧!

源码下载

使用git克隆项目源码 github.com/apache/rock…

git clone  https://github.com/apache/rocketmq.git

使用IDEA打开下载的项目

项目中比较重要的模块如:NameSrv、Broker、Producer、Consumer,先把这几个跑起来

NameSrv启动

NameSrv负责服务注册发现,可以类比ZooKeeper,但会更轻量级,所以第一步先把NameSrv启动了。

NameSrv的启动类是 org.apache.rocketmq.namesrv.NamesrvStartup

打开iTerm创建目录,用于保存配置文件、存储文件、日志文件等

cd tmp
mkdir rocketmq
cd rocketmq
mkdir conf
mkdir logs
mkdir store

先配置环境变量ROCKETMQ_HOME,指定刚创建的目录

Untitled

从模块distribution中拷贝配置文件logback_namesrv.xml到conf目录下

并修改logback_namesrv.xml的log文件输出位置

Untitled

启动

控制台打印The Name Server boot success. serializeType=JSON 则启动NameSrv成功

Broker启动

Broker是RocketMQ比较核心的角色,处理消息的存储转发等

也同样先整一份配置

从模块distribution中拷贝配置文件broker.conflogback_broker.xml到conf目录下

修改配置文件,指定存储目录,服务注册发现地址等

Untitled

Broker的启动类是 org.apache.rocketmq.broker.BrokerStartup

配置参数 -c ,指定broker配置文件路径

同样配置环境变量ROCKETMQ_HOME

Untitled

启动

控制台打印 The broker[broker-a, 192.168.43.114:10911] boot success. serializeType=JSON and name server is localhost:9876

则启动Broker成功

启动生产者

生产者用于产生消息,发送到Broker中

打开实例类org.apache.rocketmq.example.quickstart.Producer

设置namesrv的地址

producer.setNamesrvAddr("localhost:9876");

启动

Untitled

Untitled

启动消费者

消费者从Broker消费消息

打开实例类org.apache.rocketmq.example.quickstart.Consumer

设置namesrv的地址

producer.setNamesrvAddr("localhost:9876");

启动消费

Untitled

Untitled

Untitled

可以看到NameSrv、Broker、Producer、Consumer都能正常工作,源码测试环境搭建成功!

期待下一节开始debug源码吧!!!