RocketMQ是阿里基於JAVA開源的分布式消息隊列中間項目,下載源碼進行構建后才能正常使用
一、下載
可視化工具
https://github.com/apache/rocketmq-externals
RocketMQ下載地址,下載解壓到rocketmq目錄下行構建
https://archive.apache.org/dist/rocketmq/4.6.1/rocketmq-all-4.6.1-source-release.zip
http://rocketmq.apache.org/release_notes/
二、項目構建
> cd rocketmq
# meavn打包
> mvn -Prelease-all -DskipTests clean install -U
# 這里的4.5.x是版本號,可能不同,請注意自己的版本
> cd distribution/target/rocketmq-4.5.x/rocketmq-4.5.x
三、啟動 NameServer
> nohup sh bin/mqnamesrv &
# 查看日志,確認是否成功
> tail -f ~/logs/rocketmqlogs/namesrv.log
2019-9-27 21:04:10 INFO NSScheduledThread1 - ----
...
#出現下面信息成功
The Name Server boot success...
```
四、啟動 Broker
# 啟動Broker
> nohup sh bin/mqbroker -n localhost:9876 &
# 查看日志,確認是否成功
> tail -f ~/logs/rocketmqlogs/broker.log
The broker[%s, 172.30.30.233:10911] boot success...
無法正常啟動時,嘗試下面命令可看到詳細錯誤信息
sh bin/mqnamesrv
sh bin/mqbroker -n localhost:9876
發送和接收消息
1、生產者發送消息
> export NAMESRV_ADDR=localhost:9876
> sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
# 出現下面信息成功發送
SendResult [sendStatus=SEND_OK, msgId= ...
2、消費者消費消息
> sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
# 出現下面信息成功消費
ConsumeMessageThread_%d Receive New Messages: [MessageExt...
五、 關閉服務
# 關閉 broker
> sh bin/mqshutdown broker
The mqbroker(36695) is running...
Send shutdown request to mqbroker(36695) OK
# 關閉 namesrv
> sh bin/mqshutdown namesrv
The mqnamesrv(36664) is running...
Send shutdown request to mqnamesrv(36664) OK
六、注意事項:
1、配置JAVA包構建時下載依賴的國內鏡像加速構建,修改Mave構建工具目錄中conf/settings.xml的如下
<mirrors>
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>https://mvnrepository.com/</url>
</mirror>
<!-- 增加阿里鏡像 -->
<mirror>
<id>pabmaven</id>
<name>pab maven</name> <url>http://maven-repo.pab.com.cn/repository/maven-public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
2、可視化工rocketmq-externals構建時可能會遇到如下異常
Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check (validate) on project rocketmq-console-ng: Failed during checkstyle execution: There is 1 error reported by Checkst
解決方法
找到rocketmq-console目錄下的pom.xml中的maven-checkstyle-plugin節點,注掉這個插件
七、Nodejs的實現
https://www.npmjs.com/package/apache-rocketmq
參考:
官方文檔 http://rocketmq.apache.org/docs/quick-start/
中文文檔 https://rocketmq-1.gitbook.io/rocketmq-connector/quick-start/qian-qi-zhun-bei/dan-ji-huan-jing
RocketMQ中文文檔 http://rocketmq.cloud/zh-cn/docs/concept.html