麒麟OS安装Rocketmq后启动broker报'UseG1GC' is experiment错误的解决方式

网友投稿 1138 2022-05-29

因为公司正在做鲲鹏芯和麒麟OS的兼容测试,需要安装RocketMQ服务,安装完成后启动broker时,出现了以下错误:

Error: VM option 'UseG1GC' is experimental and must be enabled via -XX:+UnlockExperimentalVMOptions.

Error: Could not create the Java Virtual Machine.

安装过程(省略步骤):

方式一:官方全平台源码包安装:详细操作方式请参考官网的安装文档;

方式二:官方全平台编辑包:直接下载使用官方已经编译好的程序包;

方式三:根据华为云Rocketmq安装文档安装,地址:https://www.huaweicloud.com/kunpeng/software/rocketmq.html(需要注意,根据文档描述,git clone https://github.com/apache/rocketmq.git rocketmq 下载的是4.7.0版本的源码包,但实际是4.8.0版本的);

安装或下载解压完成之后,软件的结构基本一致,详细不作介绍;

根据以上任一方式安装好Rocketmq之后,默认的启动命令如下:

步骤一:进入Rocketmq安装目录下的bin目录;

步骤二:启动namesrv,命令为:nohup ./mqnamesrv &;

步骤三:启动broker,命令为:nohup ./mqbroker -n localhost:9876 &;

正常期望是namesrv和broker都陈宫启动,但实际是namesrv成功启动了,而broker缺启动失败,具体的报错信息如下:

Error: VM option 'UseG1GC' is experimental and must be enabled via -XX:+UnlockExperimentalVMOptions.

Error: Could not create the Java Virtual Machine.

Error: A fatal exception has occurred. Program will exit.

翻译过来大概意思为:

虚拟机选项'UseG1GC' 是一个试验性的参数,以及必须允许-XX:+UnlockExperimentalVMOptions参数;

无法创建JAVA虚拟机;

发生一个致命错误,程序将退出运行;

这么看还是挺好解决,通过mqbroker.sh脚本查看到,会调用runbroker.sh脚本,编辑runbroker.sh脚本,发现JAVA_OPT中包含了-XX:UseG1GC参数,我们在器后面添加错误提示需要允许的参数,如下:

保存退出后再次启动broker,仍报相同错误,问题未解决,换个思考方式,既然UseG1GC是一个试验性的参数,那即是有可能不稳定或者无法使用;

尝试:去掉刚才新加的参数JAVA_OPT="${JAVA_OPT} -XX:+UnlockExperimentalVMOptions";然后删除参数-XX:+UseG1GC;

再次启动,没有报错,成功启动,如下图:

具体原因是什么没有去深究,希望对各位有所帮助。

另:去掉参数-XX:+UseG1GC,保留JAVA_OPT="${JAVA_OPT} -XX:+UnlockExperimentalVMOptions",也是能成功启动的。

麒麟OS安装Rocketmq后启动broker报'UseG1GC' is experiment错误的解决方式

备注:使用鲲鹏云服务器、麒麟操作系统、oracle jdk 1.8.x(据了解麒麟操作系统目前只兼容open jdk和毕昇jdk);

JDK

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:远程支撑_方案构建指导
下一篇:【华为云-上云之路】【2020华为云AI实战营】【每天进步一点点】2020年华为云AI实战营—第一期:图像分类-作业分享
相关文章