一起养成写作习惯!这是我参与「掘金日新计划 · 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,指定刚创建的目录
从模块distribution中拷贝配置文件logback_namesrv.xml到conf目录下
并修改logback_namesrv.xml的log文件输出位置
启动
控制台打印The Name Server boot success. serializeType=JSON 则启动NameSrv成功
Broker启动
Broker是RocketMQ比较核心的角色,处理消息的存储转发等
也同样先整一份配置
从模块distribution中拷贝配置文件broker.conf、logback_broker.xml到conf目录下
修改配置文件,指定存储目录,服务注册发现地址等
Broker的启动类是 org.apache.rocketmq.broker.BrokerStartup
配置参数 -c ,指定broker配置文件路径
同样配置环境变量ROCKETMQ_HOME
启动
控制台打印 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");
启动
启动消费者
消费者从Broker消费消息
打开实例类org.apache.rocketmq.example.quickstart.Consumer
设置namesrv的地址
producer.setNamesrvAddr("localhost:9876");
启动消费
可以看到NameSrv、Broker、Producer、Consumer都能正常工作,源码测试环境搭建成功!
期待下一节开始debug源码吧!!!