一、RokectMQ部署圖
RocketMQ是阿里的開源消息中間件,在介紹怎樣安裝之前,先簡單介紹下RokectMQ,在總體認識它的架構,各組件的作用
物理部署結構:
- name server:主要是提供輕量級的服務發現和路由服務,每個節點都存放了全部的路由信息和對應的服務,也就是說生產者和消費從任意name server節點都能去註冊或獲取服務
- broker:簡單來說就是消息存放的地方,滿足TOPIC和QUEUE機制,其他特點有提供上億消息的堆積能力、提供故障恢復、統計功能和告警功能、通過2或3拷貝實現高可用,很強大
- producer:給broker發送消息,消息生產者,可以支持分佈式部署
- consumer:消息消費者,支持推和拉兩種模式,支持集羣消費和廣播消費
二、安裝與啓動
1.系統要求
- 64bit OS, Linux/Unix/Mac
- 64bit JDK 1.8+
- Maven 3.2.x
- Git
2.下載安裝包
3.解壓
unzip rocketmq-all-4.2.0-source-release.zip
如果二次解壓需要覆蓋,命令加上-o,即:
unzip -o rocketmq-all-4.2.0-source-release.zip
3.進入項目目錄,並執行安裝操作
cd rocketmq-all-4.2.0/
mvn -Prelease-all -DskipTests clean install -U
4.安裝完成,進入項目啓動文件目錄
cd distribution/target/apache-rocketmq
5.啓動nameServer,查看啓動日誌
nohup sh bin/mqnamesrv &
查看啓動日誌:
tail -f ~/logs/rocketmqlogs/namesrv.log
6.開啓自動創建Topic方式啓動broker,查看啓動日誌
nohup sh bin/mqbroker -n localhost:9876 autoCreateTopicEnable=true &
查看啓動日誌:
tail -f ~/logs/rocketmqlogs/broker.log
7.發送和接受消息測試聯通性
在發送/接收消息前,我們需要告訴客戶端:消息服務器的地址:端口(本地的話可以用localhost:端口)。RocketMQ提供多種方式來實現它
- 需要進入到RokectMQ目錄下:
export NAMESRV_ADDR=localhost:9876
- 發送一條消息:
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
應答示例:
SendResult [sendStatus=SEND_OK, msgId=1E27D5677A4D61BBE9BA02F57A3B0294, offsetMsgId=C0A8006500002A9F0000000000048E54, messageQueue=MessageQueue [topic=TopicTest, brokerName=broker-a, queueId=3], queueOffset=415]
- 接收消息:
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
應答示例:
ConsumeMessageThread_4 Receive New Messages: [MessageExt [queueId=1, storeSize=180, queueOffset=476, sysFlag=0, bornTimestamp=1583041642342, bornHost=/192.168.0.101:64271, storeTimestamp=1583041642344, storeHost=/192.168.0.101:10911, msgId=C0A8006500002A9F0000000000053B4C, commitLogOffset=342860, bodyCRC=1735662019, reconsumeTimes=0, preparedTransactionOffset=0, toString()=Message [topic=TopicTest, flag=0, properties={MIN_OFFSET=0, MAX_OFFSET=500, CONSUME_START_TIME=1583041884578, UNIQ_KEY=1E27D5677A4D61BBE9BA02F57B66038A, WAIT=true, TAGS=TagA}, body=18]]]
以上就完成了RocketMQ的安裝和啓動,需要注意的是Java環境變量必須要配置好,mac電腦可以通過/usr/libexec/java_home -V查看Java安裝路徑,然後在~/.bash_profile中添加:
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home
export JAVA_HOME
然後執行 source ~/.bash_profile 即可。
三、關閉nameServer和broker
進入到apache-rocketmq目錄,關閉nameServer:
sh bin/mqshutdown namesrv
進入到apache-rocketmq目錄,關閉broker:
sh bin/mqshutdown broker