麒麟OS安裝Rocketmq后啟動broker報'UseG1GC' is experiment錯誤的解決方式
因為公司正在做鯤鵬芯和麒麟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",也是能成功啟動的。
備注:使用鯤鵬云服務器、麒麟操作系統、oracle jdk 1.8.x(據了解麒麟操作系統目前只兼容open jdk和畢昇jdk);
JDK
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。