成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

18 張圖 | 一文帶你搭建 RocketMQ 源碼調試環境

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

大家好,我是悟空呀。

前言

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

一、獲取源碼

首先就是到 Github 網站上下載源碼。

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

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

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

二、導入源碼

下載好了后,用 IntelliJ IDEA 工具導入就可以了。

下面是對各個文件夾相關功能的解釋:

broker:RocketMQ 的 Broker 相關的代碼,用來啟動 Broker 進程。重點要看的。

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

common:公共模塊。

dev:開發相關的一些信息。

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

example:使用 RocketMQ 的例子。

filter:RocketMQ 的一些過濾器。

logappender:RocketMQ 日志相關的。

logging:RocketMQ 日志相關的。

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

openmessaging:開放消息標準,可以先忽略。

remoting:RocketMQ 的遠程網絡通信模塊的代碼,基于netty實現。重點要看的。

srvutil:里面有很多工具類。

store:消息如何在Broker上進行存儲的。重點要看的。

style:代碼檢查相關的。

test:測試相關的。

tools:命令行監控工具相關。

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

三、啟動 RocketMQ 的 NameServer

3.1 配置 NameServer 啟動參數

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

3.1.1 Edit Configurations

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

3.1.2 環境變量

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

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

然后我們點下加號,配置 ROCKETMQ_HOME 環境變量,文件夾路徑我是配置在這里的,大家可以自己配置,注意不要和 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 對應的 IP 地址是自己本機 IP。存儲路徑對應 ROCKETMQ_HOME 的 store 目錄。

# 這是nameserver的地址
namesrvAddr=127.0.0.1:9876
brokerIP1=192.168.10.197
# 這是存儲路徑,你設置為你的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 的環境變量,這個目錄就是 RocketMQ 的運行目錄,里面有新建的 conf、logs、store 目錄。conf 對應配置,logs 對應日志、store 對應數據存儲。

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

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 的啟動參數

和 NameServer 的啟動參數相似需要配置環境變量,但是 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 目錄看下啟動的詳細日志,打開 broker.log 或者 namesrv.log 文件,如下所示:

五、測試發送消息

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

打開 Producer.java 文件;

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

producer.setNamesrvAddr("127.0.0.1:9876");

然后在 IDEA 中啟動這個類:

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

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

consumer.setNamesrvAddr("127.0.0.1:9876");

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

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

好了,本地的源碼調試環境配置完成。

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

責任編輯:武曉燕 來源: 悟空聊架構
相關推薦

2022-09-22 08:32:30

RocketMQLinuxWindows

2022-07-18 21:53:46

RocketMQ廣播消息

2021-11-29 07:47:56

RocketMQ分布式消息

2022-12-20 07:39:46

2023-11-20 08:18:49

Netty服務器

2023-12-21 17:11:21

Containerd管理工具命令行

2022-06-13 11:05:35

RocketMQ消費者線程

2023-04-11 08:35:22

RocketMQ云原生

2022-07-11 11:06:11

RocketMQ函數.消費端

2021-05-29 10:11:00

Kafa數據業務

2023-07-31 08:18:50

Docker參數容器

2023-11-06 08:16:19

APM系統運維

2022-11-11 19:09:13

架構

2022-04-29 09:04:35

日志平臺開發

2023-10-27 08:15:45

2022-02-24 07:34:10

SSL協議加密

2023-11-08 08:15:48

服務監控Zipkin

2022-06-27 11:04:24

RocketMQ順序消息

2022-07-04 11:06:02

RocketMQ事務消息實現

2019-06-13 21:31:19

AI
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 美国一级片在线观看 | 国产97在线视频 | 成人毛片一区二区三区 | 91精品久久久久久久久 | 免费日韩av| 国产精品久久久久aaaa九色 | 羞羞网站在线观看 | 国产精品一区久久久 | 久草综合在线视频 | 特级特黄特色的免费大片 | 国产一区二区在线免费 | 久久久99国产精品免费 | 精品美女视频在线观看免费软件 | 欧美国产精品 | 国产剧情一区二区三区 | 91久久电影 | 日韩成人精品一区二区三区 | 亚洲视频在线观看免费 | 精品福利av导航 | 亚洲+变态+欧美+另类+精品 | 高清国产午夜精品久久久久久 | 日本h片在线观看 | 午夜男人免费视频 | 欧美影院 | 欧美久久久久久 | av毛片 | 综合久久99 | 精品成人| 欧美一级大片免费观看 | 亚洲国产一区二区三区 | 日本不卡一区二区三区在线观看 | 成人h动漫精品一区二区器材 | 91最新入口 | 天天操夜夜骑 | 精品国产欧美一区二区 | 精国产品一区二区三区四季综 | 亚洲www啪成人一区二区 | 亚洲精选久久 | 在线视频亚洲 | 国产一区二区三区色淫影院 | 国产精品久久精品 |