2.1 環境搭建
依賴工具
- JDK :1.8+
- Maven
- IntelliJ IDEA
2.1.1 源碼拉取
從官方倉庫 https://github.com/apache/rocketmq clone
或者download
源碼。
源碼目錄結構:
-
broker: broker 模塊(broke 啟動進程)
-
client :消息客戶端,包含消息生產者、消息消費者相關類
-
common :公共包
-
dev :開發者信息(非源代碼)
-
distribution :部署實例文件夾(非源代碼)
-
example: RocketMQ 例代碼
-
filter :消息過濾相關基礎類
-
filtersrv:消息過濾服務器實現相關類(Filter啟動進程)
-
logappender:日志實現相關類
-
namesrv:NameServer實現相關類(NameServer啟動進程)
-
openmessageing:消息開放標准
-
remoting:遠程通信模塊,給予Netty
-
srcutil:服務工具類
-
store:消息存儲實現相關類
-
style:checkstyle相關實現
-
test:測試相關類
-
tools:工具類,監控命令相關實現類
2.1.2 導入IDEA
執行安裝
clean install -Dmaven.test.skip=true
2.1.3 調試
創建conf
配置文件夾,從distribution
拷貝broker.conf
和logback_broker.xml
和logback_namesrv.xml
1)啟動NameServer
-
展開namesrv模塊,右鍵NamesrvStartup.java
-
配置ROCKETMQ_HOME
-
重新啟動
控制台打印結果
The Name Server boot success. serializeType=JSON
2)啟動Broker
broker.conf
配置文件內容
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
# namesrvAddr地址
namesrvAddr=127.0.0.1:9876
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
autoCreateTopicEnable=true
# 存儲路徑
storePathRootDir=E:\\RocketMQ\\data\\rocketmq\\dataDir
# commitLog路徑
storePathCommitLog=E:\\RocketMQ\\data\\rocketmq\\dataDir\\commitlog
# 消息隊列存儲路徑
storePathConsumeQueue=E:\\RocketMQ\\data\\rocketmq\\dataDir\\consumequeue
# 消息索引存儲路徑
storePathIndex=E:\\RocketMQ\\data\\rocketmq\\dataDir\\index
# checkpoint文件路徑
storeCheckpoint=E:\\RocketMQ\\data\\rocketmq\\dataDir\\checkpoint
# abort文件存儲路徑
abortFile=E:\\RocketMQ\\data\\rocketmq\\dataDir\\abort
- 創建數據文件夾
dataDir
- 啟動
BrokerStartup
,配置broker.conf
和ROCKETMQ_HOME
3)發送消息
- 進入example模塊的
org.apache.rocketmq.example.quickstart
- 指定Namesrv地址
DefaultMQProducer producer = new DefaultMQProducer("please_rename_unique_group_name");
producer.setNamesrvAddr("127.0.0.1:9876");
- 運行
main
方法,發送消息
4)消費消息
- 進入example模塊的
org.apache.rocketmq.example.quickstart
- 指定Namesrv地址
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("please_rename_unique_group_name_4");
consumer.setNamesrvAddr("127.0.0.1:9876");
- 運行
main
方法,消費消息