RocketMq是真的难搭,废了好多功夫才搭建完,碰到了好多坑,下面我把我吃到的坑记录下来
1. 安装Maven
1.1 下载maven
wget http://mirrors.shu.edu.cn/apache/maven/maven-3/3.6.0/source/apache-maven-3.6.0-src.tar.gz
解压maven
tar -zxvf apache-maven-3.6.0-src.tar.gz
1.2 编辑环境变量
vim /etc/profile
添加以下配置
export M2_HOME=/Users/zntzhang/WORK/apache-maven-3.6.3
export PATH=$PATH:$M2_HOME/bin
保存后
source /etc/profile
生效
2. 下载解压Apache-RocketMQ
2.1 下载mq
wget https://github.com/apache/rocketmq/archive/rocketmq-all-4.3.0.tar.gz
解压
tar -zxvf rocketmq-all-4.3.0.tar.gz
2.2 maven打包
进入到mq根目录,打包
mvn -Prelease-all -DskipTests clean install -U
找到打包后的target目录
cd distribution/target/apache-rocketmq/
pwd
记录这个路径,打开配置文件,添加环境变量
export rocketmq=/Users/zntzhang/WORK/rocketmq-rocketmq-all-4.3.0/distribution/target/apache-rocketmq
export PATH=$PATH:$rocketmq/bin
记得source以下立即生效。
3. 启动MQ
启动前先创建打日志的文件夹 如 /Users/zntzhang/WORK/log/rocketmqlogs/
然后进入到target的bin下启动
nohup mqnamesrv >/Users/zntzhang/WORK/log/rocketmqlogs/namesrv.log 2>&1 &
nohup mqbroker -n 127.0.0.1:9876 >/Users/zntzhang/WORK/log/rocketmqlogs/broker.log 2>&1 &
这么启动,大概率会启动失败,我们可以通过查看日志分析
- 报错 Java HotSpot™ 64-Bit Server VM warning: INFO: os::commit_memory(0x00000006ec800000, 2147483648, 0) failed; error=‘Cannot allocate memory’
RocketMq默认启动分配的内存极大,如果我们机子的内存没那么大的话是不会启动成功的。
具体需要修改jvm参数的配置文件是 runserver.sh runbroker.sh mqnamesrv.xml mqbroker.xml
- 错误: 找不到或无法加载主类 org.apache.rocketmq.namesrv.NamesrvStartup
RocketMq的环境变量配错,检查是不是target下的。 如果环境变量没配置错的话,那么就是启动时没在target的bin下启动
参考文章: