使用Idea調(diào)試RocketMQ源碼教程
前言
為了更好地了解RocketMQ,我打算看一看它的源碼了。隨著RocketMQ5.0版本的發(fā)布,應該有更多小伙伴在實際應用中選擇RocketMQ。那么我們就從這一篇文章開始,逐步來了解RocketMQ的神秘源碼吧!接下來我們先把調(diào)試環(huán)境搭建好。
下載源碼
我們先把RocketMQ源碼下載下來,為了方便一點,建議小伙伴先fork到自己的倉庫,然后再通過git拉下來。
導入idea
我們通過idea把下載的源碼導入:

有任何報紅或者錯誤先不用管。
代碼編譯
不要直接打開namesrv找到main函數(shù)就運行,這樣是跑不起來的,會產(chǎn)生以下錯誤:

我們找到源碼所在的本地目錄,或者直接在項目中打開Terminal:

首先執(zhí)行java -version檢查安裝的java版本,建議該版本不能超過java 11,測試下來java 17是編譯不了的。
如果版本沒問題的話,執(zhí)行mvn clean install -DskipTests編譯該項目。
編譯成功后,結果如下:

運行namesrv
設置ROCKETMQ_HOME
在啟動namesrv之前,我們要先設置以下對應的環(huán)境變量ROCKETMQ_HOME,這個變量可以直接在啟動配置里面設置。namesrv在啟動的時候就會去ROCKETMQ_HOME/conf里面去找相應的配置,比如logback_namesrv.xml。

- 添加
logback_namesrv.xml - 我們拉下來的項目中已經(jīng)有現(xiàn)成的
logback_namesrv.xml,所以我們只需要拷貝一下。從distribution/conf里面就可以找到logback_namesrv.xml,直接拷貝到我們指定的ROCKETMQ_HOME/conf路徑中。
啟動
直接在idea中點擊run或者debug啟動namesrv服務。

啟動broker
設置環(huán)境變量ROCKETMQ_HOME和配置文件
同樣的我們需要設置環(huán)境變量ROCKETMQ_HOME,目的和namesrv一樣,是為了讀取日志配置文件;另一個-c xx/xx/broker.conf是為了指定服務的配置文件。

配置文件
我們的broker啟動需要兩個配置文件,一個是日志配置文件logback_broker.xml,一個是broker.conf配置。這兩個配置文件我們都可以從項目中的distribution/conf中找到,我們把找到的兩個文件放到指定的路徑下。broker.conf文件需要做一些簡單的修改:
brokerClusterName = DefaultCluster brokerName = broker-a brokerId = 0 deleteWhen = 04 fileReservedTime = 48 brokerRole = ASYNC_MASTER flushDiskType = ASYNC_FLUSH # namesrv服務地址 namesrvAddr = 127.0.0.1:9876 # 運行自動創(chuàng)建topic,避免調(diào)試的時候麻煩 autoCreateTopicEnable = true # 數(shù)據(jù)存儲路徑 storePathRootDir = /Users/zouwei/Documents/projects/github_project/rocketmq/data_store # commitlog存儲文件 storePathCommitLog = /Users/zouwei/Documents/projects/github_project/rocketmq/data_store/commitlog # 消費隊列存儲文件 storePathConsumeQueue = /Users/zouwei/Documents/projects/github_project/rocketmq/data_store/consumequeue # 索引存儲文件 storePathIndex = /Users/zouwei/Documents/projects/github_project/rocketmq/data_store/index # checkpoint存儲文件 storeCheckpoint = /Users/zouwei/Documents/projects/github_project/rocketmq/data_store/checkpoint # abort文件 abortFile = /Users/zouwei/Documents/projects/github_project/rocketmq/data_store/abort
小伙伴們需要根據(jù)自己的實際情況來修改上述配置。
啟動broker
接下里,我們就可以通過idea來啟動broker了,點擊run或者debug按鈕,最后broker啟動成功。
為了更好地看到啟動效果和相關配置,小伙伴們可以適當修改一下logback_broker.xml:
<logger name="RocketmqBroker" additivity="false">
<level value="INFO"/>
<appender-ref ref="STDOUT"/>
<appender-ref ref="RocketmqBrokerAppender"/>
</logger>
在RocketmqBroker里面加上<appender-ref ref="STDOUT"/>,這樣我們就可以在控制臺中看到相關的日志了。

小結
至此,我們就完成了通過idea把RocketMQ項目導入并運行起來的操作,里面確實有一些比較小的坑,大概總結一下:
1.代碼拉下來后不能直接運行,需要通過mvn clean install -DskipTests編譯后才能運行,否則報錯;
2.在編譯前需要檢查java版本,不能是過高的版本,比如java 17;
3.編譯完成后,需要在啟動配置中指定相關的環(huán)境變量ROCKETMQ_HOME,該變量是為了namesrv和broker服務找到日志配置文件;broker服務還要指定broker.conf配置文件;
4.broker服務最好配置一下autoCreateTopicEnable = true,避免后續(xù)調(diào)試的時候不方便;
5.所有的配置文件在拉下來的代碼中都可以找到,相關路徑為distribution/conf;
6.把日志輸出到控制臺可以更好地了解服務啟動的狀態(tài);
以上就是使用Idea調(diào)試RocketMQ源碼教程的詳細內(nèi)容,更多關于Idea調(diào)試RocketMQ源碼的資料請關注腳本之家其它相關文章!
相關文章
VScode連接遠程服務器踩坑實戰(zhàn)記錄(新版離線vscode-server安裝)
本文主要介紹了如何使用VScode連接遠程服務器,并對離線安裝vscode-server進行了詳細的操作步驟說明,其中包括VScode擴展的安裝與配置,vscode-server的離線下載,文件的解壓縮和移動,以及VScode的一些更新設置,能夠幫助讀者更好地理解和掌握VScode連接遠程服務器的方法2024-10-10
Linux下Web網(wǎng)站壓力測試工具Webbench使用教程
webbench最多可以模擬3萬個并發(fā)連接去測試網(wǎng)站的負載能力,個人感覺要比Apache自帶的ab壓力測試工具好,安裝使用也特別方便。2014-11-11
服務器安裝conda環(huán)境遇到代理PROXY問題及解決方案
這篇文章主要為大家介紹了服務器安裝conda環(huán)境遇到代理PROXY問題及解決方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07

