RocketMQ异常:‘UseCMSCompactAtFullCollection‘
前言
前言
昨天在Linux上安装了RocketMQ之后在bin文件目录下运行 sh mqnamesrv
的启动代码后直接就报了下面的异常:
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
Unrecognized VM option
Unrecognized VM option 'UseCMSCompactAtFullCollection'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
看不懂没事,网易词典翻译一下:
OpenJDK 64位服务器虚拟机警告:选项UseConcMarkSweepGC在9.0版本中已被弃用,可能在未来的版本中被删除。
未被认出的VM选项
无法识别的虚拟机选项“UseCMSCompactAtFullCollection”
不能创建Java虚拟机。
错误:发生了致命异常。程序将退出。
翻译了也看不懂那就只能百度一个个方法去试了,通过一顿折腾终于能够运行了,所以记录下来给遇到同样异常的朋友一个解决思路。
所用环境
服务 | 版本 |
---|---|
RocketMQ | 4.5.2 |
JDK | 8 |
Linux | CentOS Linux release 7.6.1810 (Core) |
Nodejs | 14.15.1 |
Elasticsearch | 7.4.0 |
解决方法
首先百度了解到可能是由于jdk版本过高,原本使用的是jdk-8u171-linux-x64.tar.gz。
于是基于jdk1.8下载了更低版本的jdk-8u144-linux-x64.tar.gz 。
Java过往版本下载:
https://www.oracle.com/cn/java/technologies/javase/javase8-archive-downloads.html
-
把jdk-8u144-linux-x64.tar.gz 解压到之前安装JDK的目录下。
如果不确定JDK装在哪了可以用which java
命令确认一下。
-
然后用
vim /etc/profile
进 /etc/profile 把JDK的JAVA_HOME给替换成144的 。 -
可以看到我在这里把JDK、Nodejs、Elasticsearch的HOME路径放在了一起 。
-
然后就进到rocketmq的bin目录下。
-
运行命令
sh mqnamesrv
可以看到报了开头的异常。
-
通过一个朋友的提醒我试着将Elasticsearch的HOME路径给注释掉。
重点
-
使用
Esc + :wq!
强制保存退出vim模式后,一定一定要记得用source /etc/profile
使更改后的文件生效然后再运行一次之后,可以看到启动成功不再报错。 -
但是我不知道Elasticsearch的HOME路径给注释掉之后会不会影响启动,如果不能启动且我要用Elasticsearch的话就又得把注释解开,用完又给注释掉,每次这样来来回回的话会很麻烦。
-
于是我试着将Elasticsearch的HOME路径给放到profile文档最底部且不注释掉。
-
这里如果vim进去文件显示不全的话可以按住shift+pageup或者pagedown进行翻页,直到底部。
-
保存退出后,用
source /etc/profile
命令生效的之后再运行一遍之后果然成了,但是之后我又试了一遍之后突然又不行了。
所以如果你用这种方法解决了就最好别再改动,但是将Elasticsearch的HOME路径给注释掉方式感觉更加稳定。 -
于是只能试试Elasticsearch的HOME路径被注释掉之后的Elasticsearch启动和使用是否会受到影响
-
切换用户之后进入Elasticsearch的bin目录运行
./elasticcsearch
可以看到在HOME注释掉的情况下Elasticsearch还是能够启动起来 -
访问虚拟机地址依旧成功
结语
听朋友说这个异常的原因可能是因为Elasticsearch的某些配置会影响到RocketMQ的启动然后就调用了原生的JDK,但是原生的JDK肯定是不满足要求的,但是我确定我原生JDK是卸载掉了的。
所以如果没有更好的办法的话,最好的解决办法就是把 /etc/prfile
里Elasticsearch的HOME路径注释掉,同时也不会影响Elasticsearch的使用。
希望这篇文章能够帮到你。
更多推荐
所有评论(0)