偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

18 張圖 | 一文帶你搭建 RocketMQ 源碼調(diào)試環(huán)境

開發(fā) 前端
最近在倒騰 RocketMQ 消息隊列,小卷了下 RocketMQ 的源碼,本篇會帶著大家一起看下如何配置好調(diào)試源碼的環(huán)境。

大家好,我是悟空呀。

前言

最近在倒騰 RocketMQ 消息隊列,小卷了下 RocketMQ 的源碼,本篇會帶著大家一起看下如何配置好調(diào)試源碼的環(huán)境。

一、獲取源碼

首先就是到 Github 網(wǎng)站上下載源碼。

源碼地址:https://github.com/apache/rocketmq/releases

我下載的是這個版本:rocketmq-rocketmq-all-4.9.2。

如果遇到 Github 網(wǎng)站的打開速度較慢,可以在公眾號后臺回復(fù) RocketMQ源碼 即可獲取百度網(wǎng)盤鏈接。

二、導(dǎo)入源碼

下載好了后,用 IntelliJ IDEA 工具導(dǎo)入就可以了。

下面是對各個文件夾相關(guān)功能的解釋:

broker:RocketMQ 的 Broker 相關(guān)的代碼,用來啟動 Broker 進(jìn)程。重點要看的。

client:RocketMQ 的 Producer、Consumer 這些客戶端的代碼,用來生產(chǎn)消息、消費消息。

common:公共模塊。

dev:開發(fā)相關(guān)的一些信息。

distribution:用來部署 RocketMQ 的,比如 bin 目錄 ,conf 目錄。

example:使用 RocketMQ 的例子。

filter:RocketMQ 的一些過濾器。

logappender:RocketMQ 日志相關(guān)的。

logging:RocketMQ 日志相關(guān)的。

namesvr:NameServer 的源碼。重點要看的。

openmessaging:開放消息標(biāo)準(zhǔn),可以先忽略。

remoting:RocketMQ 的遠(yuǎn)程網(wǎng)絡(luò)通信模塊的代碼,基于netty實現(xiàn)。重點要看的。

srvutil:里面有很多工具類。

store:消息如何在Broker上進(jìn)行存儲的。重點要看的。

style:代碼檢查相關(guān)的。

test:測試相關(guān)的。

tools:命令行監(jiān)控工具相關(guān)。

我們看源碼是不是直接就各種文件都看一遍呢?當(dāng)然不是,首先得把項目跑起來吧,接下來看下如何讓 RocketMQ 的 NameServer 和 Broker 啟動起來。NameServer 就是所有 Broker 都需要注冊的地方,注冊中心。Broker 就是用來收客戶端發(fā)的消息、存儲消息傳、遞消息給消費端的組件。

三、啟動 RocketMQ 的 NameServer

3.1 配置 NameServer 啟動參數(shù)

因為在本地直接啟動源碼是起不來的,需要單獨配置下啟動參數(shù)。

3.1.1 Edit Configurations

首先在 IDEA 工具的菜單欄中找到 NameSrvStartup 啟動的地方,然后下拉選擇 Edit Configurations,可以打開 NameSrvStartup 的配置項。如下圖所示:

3.1.2 環(huán)境變量

需要配置一個 ROCKETMQ_HOME 環(huán)境變量,它就是一個本地文件夾,專門用來存放一些配置文件,這個文件夾的名字后面還會用到。

打開配置環(huán)境變量的界面,如下圖所示,點下這個按鈕就可以了:

然后我們點下加號,配置 ROCKETMQ_HOME 環(huán)境變量,文件夾路徑我是配置在這里的,大家可以自己配置,注意不要和 RocketMQ 源碼目錄里面。

/Users/wukong/00.Study/_workspace/rocketmq/ROCKETMQ_HOME

3.1.3 拷貝配置文件

首先在 ROCKMQ_HOME 目錄新建幾個文件夾:conf、logs、store。

然后我們需要 RoctetMQ 自帶的配置文件拷貝到 conf 目錄下。

配置文件就是需要從源碼目錄中 distribution 目錄下 拷貝三個文件:broker.conf、logback_namesrv.xml、logback_broker.xml。

3.1.4 修改 logback 日志配置文件

然后打開logback_namesrv.xml 和 logback_broker.xml 文件,將 ${user.home} 全局替換為之前配置的 ROCKETMQ_HOME 目錄。

/Users/wukong/00.Study/_workspace/rocketmq/ROCKETMQ_HOME

替換后的配置如下圖所示:

3.1.5 修改 broker 配置文件

打開 conf 目錄下的 broker.xml 文件,拷貝下面的配置到文件中。

注意:brokerIP1 對應(yīng)的 IP 地址是自己本機 IP。存儲路徑對應(yīng) ROCKETMQ_HOME 的 store 目錄。

# 這是nameserver的地址
namesrvAddr=127.0.0.1:9876
brokerIP1=192.168.10.197
# 這是存儲路徑,你設(shè)置為你的rocketmq運行目錄的store子目錄
storePathRootDir=<你自己的 ROCKETMQ_HOME 路徑>/store
# 這是commitLog的存儲路徑
storePathCommitLog=<你自己的 ROCKETMQ_HOME 路徑>/store/commitlog
# consume queue文件的存儲路徑
storePathConsumeQueue=<你自己的 ROCKETMQ_HOME 路徑>/store/consumequeue
# 消息索引文件的存儲路徑
storePathIndex=<你自己的 ROCKETMQ_HOME 路徑>/store/index
# checkpoint文件的存儲路徑
storeCheckpoint=<你自己的 ROCKETMQ_HOME 路徑>/store/checkpoint
# abort文件的存儲路徑
abortFile=<你自己的 ROCKETMQ_HOME 路徑>/store/abort

3.1.6 啟動 NameServer

上面的配置都配置好了,就可以用 IDEA 啟動了,注意,直接可以用 debug 模式啟動。

IDEA 會自動找到 ROCKETMQ_HOME 的環(huán)境變量,這個目錄就是 RocketMQ 的運行目錄,里面有新建的 conf、logs、store 目錄。conf 對應(yīng)配置,logs 對應(yīng)日志、store 對應(yīng)數(shù)據(jù)存儲。

然后我們可以在控制臺看到啟動的日志輸出:

Connected to the target VM, address: '127.0.0.1:52115', transport: 'socket'
The Name Server boot success. serializeType=JSON

四、啟動 RocketMQ 的 Broker

3.1 配置 Broker 的啟動參數(shù)

和 NameServer 的啟動參數(shù)相似需要配置環(huán)境變量,但是 Broker 多了一個 Program arguments 配置項,用來加載指定的配置文件 broker.conf。配置如下:

-c < 你的ROCKETMQ_HOME 目錄>/conf/broker.conf

4.2 啟動 Broker

接著用 debug 模式啟動 broker,可以看到控制臺輸出以下信息:

Connected to the target VM, address: '127.0.0.1:52279', transport: 'socket'
The broker[broker-a, 192.168.10.197:10911] boot success. serializeType=JSON and name server is 127.0.0.1:9876

4.3 查看啟動日志

另外我們到 logs 目錄看下啟動的詳細(xì)日志,打開 broker.log 或者 namesrv.log 文件,如下所示:

五、測試發(fā)送消息

我們直接用源碼自帶的示例代碼來做測試。文件目錄如下:

打開 Producer.java 文件;

修改如下代碼中的 IP 地址;

producer.setNamesrvAddr("127.0.0.1:9876");

然后在 IDEA 中啟動這個類:

可以看到控制臺打印了輸出結(jié)果,成功發(fā)送了一條消息。注意:消費者的示例代碼里面,我改成了只發(fā)送了一條消息。

接著我們啟動消費者代碼,看下是否成功消費了。同樣需要修改這個配置:

consumer.setNamesrvAddr("127.0.0.1:9876");

然后啟動 Consumer,可以看到成功消費了一條消息:

注意:消息的顯示是用 ASCII 碼來表示的,所以不能直接看出來發(fā)送的什么。

好了,本地的源碼調(diào)試環(huán)境配置完成。

RocketMQ 也是有客戶端界面來查看 RocketMQ 的運行情況的。如下所示:

責(zé)任編輯:武曉燕 來源: 悟空聊架構(gòu)
相關(guān)推薦

2022-09-22 08:32:30

RocketMQLinuxWindows

2022-07-18 21:53:46

RocketMQ廣播消息

2021-11-29 07:47:56

RocketMQ分布式消息

2023-11-20 08:18:49

Netty服務(wù)器

2023-12-21 17:11:21

Containerd管理工具命令行

2022-12-20 07:39:46

2023-07-31 08:18:50

Docker參數(shù)容器

2021-05-29 10:11:00

Kafa數(shù)據(jù)業(yè)務(wù)

2023-11-06 08:16:19

APM系統(tǒng)運維

2022-11-11 19:09:13

架構(gòu)

2023-04-11 08:35:22

RocketMQ云原生

2022-06-13 11:05:35

RocketMQ消費者線程

2022-07-11 11:06:11

RocketMQ函數(shù).消費端

2022-04-29 09:04:35

日志平臺開發(fā)

2022-02-24 07:34:10

SSL協(xié)議加密

2023-11-08 08:15:48

服務(wù)監(jiān)控Zipkin

2023-10-27 08:15:45

2019-06-13 21:31:19

AI

2024-05-22 09:45:49

2021-09-13 22:34:56

區(qū)塊鏈新基建數(shù)字化轉(zhuǎn)型
點贊
收藏

51CTO技術(shù)棧公眾號