RocketMQ源碼分析(一)

1、源碼下載

Alibaba RocketMQ已經遷移到了Apache 下面:git

https://github.com/apache/incubator-rocketmq.gitgithub

若是但願閱讀Alibaba原版的RocketMQ代碼,看到不少網站上的給的鏈接都是這個地址apache

  • git clone https://github.com/alibaba/RocketMQ.git,可是實際點擊進去是404,已經下載不到原來的代碼了。

本文提出另一種方式下載源碼:網站

https://gitee.com/mirrors/rocketmq clone 到本地:ui

而後 經過版本回退,能夠到任意指定的版本,本文是到了3.4.6版本,使用以下命令:this

git reset --hard 03c1ad102 便可閱讀阿里原版的3.4.6版本的RocketMQ代碼。spa

2、RocketMQ第一個例子.net

一、啓動namesvr:

com.alibaba.rocketmq.namesrv.NamesrvStartup 這個類,須要設置參數,注意將參數替換成具體的位置:code

-Drocketmq.home.dir=/Users/xxx/alibaba-rocketMQ-3.4.6
-Duser.home=/Users/xxx/alibaba-rocketMQ-3.4.6/userhome

二、啓動brocker:

com.alibaba.rocketmq.broker.BrokerStartup這個類,須要設置參數,以下所示:blog

-Drocketmq.home.dir=/Users/xxx/alibaba-rocketMQ-3.4.6
-Duser.home=/Users/xxx/alibaba-rocketMQ-3.4.6/userhome 
-Drocketmq.namesrv.addr=127.0.0.1:9876

其中namesvr的地址必須配置正確,還有一種配置方式是在輸入參數中傳入:

-n 127.0.0.1:9876

若是這裏的namesvr設置不對,會出現No route info of this topic, TopicTest 的錯誤

三、啓動Comsumer:

com.alibaba.rocketmq.example.simple.PushConsumer這個類:

須要設置namesvr的地址:

consumer.setNamesrvAddr("127.0.0.1:9876");

以及參數配置:

-Drocketmq.home.dir=/Users/xxx/alibaba-rocketMQ-3.4.6
-Duser.home=/Users/xxx/alibaba-rocketMQ-3.4.6/userhome

四、啓動Producer

com.alibaba.rocketmq.example.quickstart.Producer這個類:

設置namesvr的地址:

producer.setNamesrvAddr("127.0.0.1:9876");

配置參數:

-Drocketmq.home.dir=/Users/xxx/alibaba-rocketMQ-3.4.6
-Duser.home=/Users/xxx/alibaba-rocketMQ-3.4.6/userhome

最終看到的結果是:

注意top要一一對應,才能看到發送成功,而且消費成功。

參考文獻:

https://blog.csdn.net/a2888409/article/details/53781766

相關文章
相關標籤/搜索