rocketmq作为一款常用的消息中间件,可以做到流量削峰和延迟消息等功能,而在mac上安装和使用rocketmq会遇到不少问题,这边分享一下。并在最后给出rocketmq可视化资源的链接。
1.没有JAVA_HOME
ERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)! !!
首先你要确保电脑上安装了jdk,之后就是进行JAVA_HOME环境变量和rocketmq中JAVA_HOME配置。
mac中配环境变量的地方很多,我是在优先级最高的/etc/profile中配的,顺便把rocketmq的环境变量也配了,如下图所示:(关于mac上JAVA_HOME的查看大家可以参考网上其他方法):
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
export ROCKET_HOME=/usr/local/rocketmq-all-4.2.0-source-release/rocketmq-all-4.2.0/distribution/target/apache-rocketmq
接下来需要在bin目录下的runbroker.sh和runserver.sh文件中配置JAVA_HOME,注释掉前三行并且添加自己的环境变量:
2.报错主类找不到
错误: 找不到或无法加载主类 org.apache.rocketmq.namesrv.NamesrvStartup
Java HotSpot(TM) 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
Java HotSpot(TM) 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
Java HotSpot(TM) 64-Bit Server VM warning: Cannot open file /dev/shm/rmq_srv_gc.log due to No such file or directory
关于这个问题网上有很多解答,但都没解决我的问题,而我实际上并没有正面解决。而是通过mvn命令重新编译了rocketmq,之后再到target目录下的apache-rocketmq内的bin进行启动(或许你本身在那个目录下就能成功启动,总之distribution下直接的文件启动不了就去target看看吧),通过nohup成功启动,Jps发现已经成功:
最后附上rocketmq可视化界面可直接运行的jar包,效果如下图所示:
下载地址:
链接:https://pan.baidu.com/s/1wopxt4I9AbID4zdyk0eIPQ
提取码:l6f6