RocketMQ
Apache RocketMQ™是一個統一消息引擎、輕量級數據處理平臺。
Apache RocketMQ™ is a unified messaging engine, lightweight data processing platform.
環境信息
- Apache RocketMQ 4.6.0
- CentOS Linux release 7.7.1908 (Core)
- jdk-8u241-linux-x64
- Apache Maven 3.5.2
- git version 2.21.0 (Apple Git-122)
- 4g+ free disk for Broker server
安裝
安裝包下載地址:
https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.6.0/rocketmq-all-4.6.0-bin-release.zip
下載安裝包
[root@baimaduhe ~]# cd /usr/local/src/
[root@baimaduhe src]# wget http://mirror.bit.edu.cn/apache/rocketmq/4.6.0/rocketmq-all-4.6.0-bin-release.zip
解壓安裝包
## 解壓
[root@baimaduhe src]# unzip rocketmq-all-4.6.0-bin-release.zipp
## 將安裝文件拷貝到指定目錄
[root@baimaduhe src]# mv rocketmq-all-4.6.0-bin-release /usr/local/rocketmq
啓動RocketMq
## 啓動Name Server
[root@baimaduhe src]# nohup sh /usr/local/rocketmq/bin/mqnamesrv &
## 查看Namer Server 日誌
[root@baimaduhe src]# tail -f ~/logs/rocketmqlogs/namesrv.log
## 啓動Broker
[root@baimaduhe src]# nohup sh /usr/local/rocketmq/bin/mqbroker -n localhost:9876 >/dev/null 2>&1 &
## 查看Broker啓動日誌
[root@baimaduhe bin]# tail -f ~/logs/rocketmqlogs/broker.log
發送 & 接收消息
## 設置Name Server 環境變量
[root@baimaduhe bin]# export NAMESRV_ADDR=localhost:9876
## 發送消息
[root@baimaduhe bin]# sh /usr/local/rocketmq/bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
## 接收消息
[root@baimaduhe bin]# sh /usr/local/rocketmq/bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
停止服務
## 關閉broker
[root@baimaduhe bin]# sh /usr/local/rocketmq/bin/mqshutdown broker
## 關閉Name Server
[root@baimaduhe bin]# sh /usr/local/rocketmq/bin/mqshutdown namesrv
FAQ
Broker 啓動失敗,報錯信息如下
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, 8589934592, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 8589934592 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /usr/local/rocketmq/bin/hs_err_pid15314.log
原因:
內存不足,我的Linux是阿里雲ECS2C4G的
[root@baimaduhe bin]# free -m
total used free shared buff/cache available
Mem: 3602 1615 218 0 1768 1736
Swap: 0 0 0
[root@baimaduhe bin]#
解決方案
修改啓動vm內存配置
修改/usr/local/rocketmq/bin/ 下的服務啓動腳本 runserver.sh 、runbroker.sh 中對於內存的限制,改成如下示例:
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn500m"
參考資料
- http://rocketmq.apache.org/docs/quick-start/
- https://blog.csdn.net/u013680938/article/details/53392644