RocketMQ 學習筆記-01 調試環境搭建

RocketMQ Github 地址java

1.源碼下載&編譯

# 1.clone 源代碼
git clone https://github.com/apache/rocketmq.git
# 2.代碼編譯下載依賴
mvn clean install -Dmaven.test.skip=true複製代碼

2.IDEA 調試環境搭建

在IDEA 中分別啓動NameServer、Broker、並運行消息發送與消息消費的示例程序。git

運行代碼前新建任意文件夾(rocketmq_temp)做爲ROCKETMQ_HOME  ,而且在rocketmq_temp新建三個目錄 conf 、logs、storegithub

2.1 啓動NameServer

  1. 從RocketMQ distribution 部署目錄,拷貝broker.conf、logback_broker.xml logback_namesrv.xml 三個文件到conf 目錄
  2. 修改broker.conf 文件內容以下


    3. 修改日誌文件目錄apache

修改 logback_broker.xml、 logback_namesrv.xml 日誌文件的目錄爲咱們新建的/rocketmq_temp/logs 下;bash

   4.配置IDEA 運行NamesrvStartup.java服務器

展開namesrv 模塊,右鍵debug模式運行,運行前須要配置ROCKETMQ_HOMEapp

當控制檯輸出 如下提示表明啓動成功maven

The Name Server boot success. serializeType=JSON複製代碼

2.2 啓動Broker

  1. 配置IDEA 運行BrokerStartup.java

展開broker 模塊,右鍵debug 模式運行BrokerStartup.java,運行以前須要配置ROCKETMQ_HOME、指定broker.conf 配置文件ide


當控制檯輸出 如下提示表明啓動成功工具

The broker[broker-a, 10.10.2.232:10911] boot success. serializeType=JSON and name server is 127.0.0.1:9876複製代碼

2.3 啓動Provider

  1. 展開example 模塊,修改quickstart 目錄下Producer 程序


   2. 運行Provider 當控制檯有如下輸出結果表明消息發送成功

SendResult [sendStatus=SEND_OK, msgId=C0A81F091B4218B4AAC272FCE64E0000, offsetMsgId=C0A81F0900002A9F000000000002BEB2, messageQueue=MessageQueue [topic=TopicTest, brokerName=broker-a, queueId=3], queueOffset=250]
複製代碼

2.4 啓動Consumer

  1. 展開example 模塊,修改quickstart 目錄下Consumer 程序


   2. 運行Consumer 當控制檯有如下輸出結果表明消息消費成功

ConsumeMessageThread_1 Receive New Messages: [MessageExt [queueId=0, storeSize=178, queueOffset=0, sysFlag=0, bornTimestamp=1563801916906, bornHost=/10.10.2.232:53133, storeTimestamp=1563801916952, storeHost=/10.10.2.232:10911, msgId=0A0A02E800002A9F0000000000000000, commitLogOffset=0, bodyCRC=613185359, reconsumeTimes=0, preparedTransactionOffset=0, toString()=Message{topic='TopicTest', flag=0, properties={MIN_OFFSET=0, MAX_OFFSET=250, CONSUME_START_TIME=1563802089001, UNIQ_KEY=0A0A02E819B118B4AAC270BE41EA0000, WAIT=true, TAGS=TagA}, body=[72, 101, 108, 108, 111, 32, 82, 111, 99, 107, 101, 116, 77, 81, 32, 48], transactionId='null'}]] 
複製代碼

至此,RocketMQ 本地調試環境搭建成功!

3.RocketMQ 源代碼目錄結構介紹


3.1RocketMQ 核心目錄說明

  1. broker:broker 模塊(Broker 消息中轉角色,負責存儲消息,轉發消息,其實就是RocketMQ Server;)
  2. client:消息客戶端,包含消息生成者、消息消費者相關的類。
  3. common:公工包。
  4. dev:開發者信息。
  5. distribution:部署實例文件夾。
  6. example:RocketMQ 示例代碼。
  7. filter:消息過濾相關基礎類
  8. filtersrv:消息過濾服務器實現相關類。
  9. logappender:日誌相關實現類。
  10. namesrv:NameServer 實現相關類(負責MQ 服務之間的協調,每個Broker 啓動的時候都會向NameServer 註冊,主要接受broker 的註冊,接收客戶端的路由請求並返回路由信息)
  11. openmessaging:消息開放標準
  12. remoting:遠程通訊模塊,基於Netty.
  13. srvutil:服務器工具類。
  14. store:消息存儲實現相關類。
  15. tools:工具類,監控命令相關實現類。
相關文章
相關標籤/搜索