Skip to content

介绍

在集成RocketMQ到微服务项目中,出现奇怪的异常。

Could Not Create Java Virtual Machine。not found Unrecognized option: -Xlog:gc*:file=/dev/shm/rmq_srv_gc_%p_%t.log:time,tags:filecount=5,filesize=30M;

下面是介绍具体的安装步骤及解决方法:

配置JAVA环境

根据rockermq的版本来配置JAVA环境,具体的配置方法上网查询就好。这里使用jdk1.8:

bash
echo $JAVA_HOME

/usr/lib/jvm/java-8-openjdk-amd64

bash
java -version

openjdk version "1.8.0_452" OpenJDK Runtime Environment (build 1.8.0_452-8u452-ga~us1-0ubuntu1~22.04-b09) OpenJDK 64-Bit Server VM (build 25.452-b09, mixed mode)

解压

bash
unzip rocketmq-all-4.8.0-bin-release.zip

修改配置文件

bash
cd /soft/rocketmq-all-4.8.0-bin-release/bin
vim runserver.sh
找到配置修改为:
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

把下面的[]去掉一个,原因Bash 语法 `[[` 解析失败,导致 Java 版本检测错误,进而应用了不兼容的 JVM 选项。
这也是我这里虚拟机构建失败的原因。
if [ "$JAVA_MAJOR_VERSION" -lt "9" ] ; then

同理:
vim  runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
-XX:MaxDirectMemorySize=1g"

启动

bash
下面的端口记得开放
nohup sh mqnamesrv &
tail -f ~/logs/rocketmqlogs/namesrv.log

nohup sh mqbroker -n localhost:9876 &
tail -f ~/logs/rocketmqlogs/broker.log

创建所需文件

bash
cd ~/store
mkdir commitlog
mkdir consumequeue

这样我们就实现了Ubuntu下RocketMQ的安装。

上次更新于: