rocketMQ4.4.0 使用JDK11無法啟動問題修改點記錄

JDK8即將收費谚赎,所以需要升級jdk11(目前最新的是jdk12,但是沒有時間去研究)诱篷。
需要遷移的服務(wù)中大部分只要升級到最新的版本都可以支持JDK11壶唤。但是也有服務(wù)不可以的,
RocketMQ最新的是4.4.0版本棕所,至于安裝步驟我就不寫啦闸盔,網(wǎng)上一搜一大把,
但是當RocketMQ4.4.0遇到JDK11后卻出現(xiàn)了無法啟動nameserver的問題琳省。
原因就是RocketMQ仍然是按著JDK8的配置做為啟動的迎吵。
廢話少說盤他!针贬!
主要修改點如下(修改部分主要在注釋前后):
vim runserver.sh

error_exit ()
{
    echo "ERROR: $1 !!"
    exit 1
}

[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)!"

export JAVA_HOME
export JAVA="$JAVA_HOME/bin/java"
export BASE_DIR=$(dirname $0)/..
export CLASSPATH=${BASE_DIR}/lib/rocketmq-namesrv-4.4.0.jar:${BASE_DIR}/lib/*:${BASE_DIR}/conf:${CLASSPATH}
#export CLASSPATH=.:${BASE_DIR}/conf:${CLASSPATH}
echo "$BASE_DIR"
echo "CLASSPATH:$CLASSPATH"

#===========================================================================================
# JVM Configuration
#===========================================================================================
#JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
#JAVA_OPT="${JAVA_OPT} -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8  -XX:-UseParNewGC"
JAVA_OPT="${JAVA_OPT} -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 "
JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:/dev/shm/rmq_srv_gc.log -XX:+PrintGCDetails"
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"
JAVA_OPT="${JAVA_OPT}  -XX:-UseLargePages"
#JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${BASE_DIR}/lib"
#JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${JAVA_HOME}/bin:${BASE_DIR}/lib"
JAVA_OPT="${JAVA_OPT} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n"
JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"
JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"


$JAVA ${JAVA_OPT} $@

主要有三點:內(nèi)存大小击费、java啟動配置、classpath桦他。
這樣啟動的時候就不會報如下錯誤啦

Error: Unable to initialize main class org.apache.rocketmq.namesrv.NamesrvStartup
Caused by: java.lang.NoClassDefFoundError: org/apache/rocketmq/srvutil/ShutdownHookThread

borker啟動文件修改
vim runbroker.sh

error_exit ()
{   
    echo "ERROR: $1 !!"
    exit 1
}

[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)!"

export JAVA_HOME
export JAVA="$JAVA_HOME/bin/java"
export BASE_DIR=$(dirname $0)/..
#export CLASSPATH=.:${BASE_DIR}/conf:${CLASSPATH}
export CLASSPATH=${BASE_DIR}/lib/rocketmq-broker-4.4.0.jar:${BASE_DIR}/lib/*:${BASE_DIR}/conf:${CLASSPATH}
export CLASSPATH=${BASE_DIR}/lib/rocketmq-broker-4.4.0.jar:${BASE_DIR}/lib/*:${BASE_DIR}/conf/:.:${CLASSPATH}
#JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m"
JAVA_OPT="${JAVA_OPT} -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0"
JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:/dev/shm/mq_gc_%p.log -XX:+PrintGCDetails"
#JAVA_OPT="${JAVA_OPT} -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m"
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"
JAVA_OPT="${JAVA_OPT} -XX:+AlwaysPreTouch"
JAVA_OPT="${JAVA_OPT} -XX:MaxDirectMemorySize=15g"
JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages -XX:-UseBiasedLocking"
#JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${BASE_DIR}/lib"
#JAVA_OPT="${JAVA_OPT} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n"
JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"
JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"

numactl --interleave=all pwd > /dev/null 2>&1
if [ $? -eq 0 ]
then
        if [ -z "$RMQ_NUMA_NODE" ] ; then
                numactl --interleave=all $JAVA ${JAVA_OPT} $@
        else
                numactl --cpunodebind=$RMQ_NUMA_NODE --membind=$RMQ_NUMA_NODE $JAVA ${JAVA_OPT} $@
        fi
else
        $JAVA ${JAVA_OPT} $@
fi

主要修改點與nameserver配置文件的修改點相似蔫巩。
修改工具類腳本文件:
vim tools.sh

error_exit ()
{
    echo "ERROR: $1 !!"
    exit 1
}

[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)!"

export JAVA_HOME
export JAVA="$JAVA_HOME/bin/java"
export BASE_DIR=$(dirname $0)/..
export CLASSPATH=${BASE_DIR}/lib/*:${BASE_DIR}/conf:.:${CLASSPATH}

#===========================================================================================
# JVM Configuration
#===========================================================================================
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn256m -XX:PermSize=128m -XX:MaxPermSize=128m"
#JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${BASE_DIR}/lib:${JAVA_HOME}/jre/lib/ext"
JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"

$JAVA ${JAVA_OPT} $@
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市快压,隨后出現(xiàn)的幾起案子圆仔,更是在濱河造成了極大的恐慌,老刑警劉巖蔫劣,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坪郭,死亡現(xiàn)場離奇詭異,居然都是意外死亡脉幢,警方通過查閱死者的電腦和手機截粗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門信姓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人绸罗,你說我怎么就攤上這事《固保” “怎么了珊蟀?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長外驱。 經(jīng)常有香客問我育灸,道長,這世上最難降的妖魔是什么昵宇? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任磅崭,我火速辦了婚禮,結(jié)果婚禮上瓦哎,老公的妹妹穿的比我還像新娘砸喻。我一直安慰自己,他們只是感情好蒋譬,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布割岛。 她就那樣靜靜地躺著,像睡著了一般犯助。 火紅的嫁衣襯著肌膚如雪癣漆。 梳的紋絲不亂的頭發(fā)上涡匀,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天登舞,我揣著相機與錄音爹脾,去河邊找鬼就轧。 笑死大诸,一個胖子當著我的面吹牛潜圃,可吹牛的內(nèi)容都是我干的驳阎。 我是一名探鬼主播架专,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼倒槐,長吁一口氣:“原來是場噩夢啊……” “哼旬痹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起讨越,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤两残,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后把跨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體人弓,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年着逐,在試婚紗的時候發(fā)現(xiàn)自己被綠了崔赌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片意蛀。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖健芭,靈堂內(nèi)的尸體忽然破棺而出县钥,到底是詐尸還是另有隱情,我是刑警寧澤慈迈,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布若贮,位于F島的核電站,受9級特大地震影響痒留,放射性物質(zhì)發(fā)生泄漏谴麦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一伸头、第九天 我趴在偏房一處隱蔽的房頂上張望匾效。 院中可真熱鬧,春花似錦恤磷、人聲如沸面哼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽精绎。三九已至,卻和暖如春锌妻,著一層夾襖步出監(jiān)牢的瞬間代乃,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工仿粹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留搁吓,地道東北人。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓吭历,卻偏偏與公主長得像堕仔,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子晌区,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容

  • metaq是阿里團隊的消息中間件摩骨,之前也有用過和了解過kafka,據(jù)說metaq是基于kafka的源碼改過來的朗若,他...
    菜鳥小玄閱讀 32,863評論 0 14
  • RocketMQ安裝 安裝條件 Linux服務(wù)器 maven JAVA環(huán)境配置 git(使用git安裝的情況下) ...
    Lacia閱讀 11,215評論 13 1
  • 1 架構(gòu)原理 1.1 應(yīng)用場景 只支持發(fā)布訂閱模式恼五。 大數(shù)據(jù)量的消息堆積能力,最終數(shù)據(jù)是持久化到磁盤上哭懈,理論上無限...
    可笑可樂閱讀 9,359評論 0 2
  • Rocket MQ 介紹: 1.要知道RocketMQ原生就是支持分布式的灾馒,而ActiveMQ原生存在單點性。2....
    Anson前行閱讀 1,852評論 0 4
  • 前言 由于最近項目要升級消息中間件遣总,因此對消息中間件進行了一些調(diào)研睬罗,看了一些東西之后首當其沖準備試試RocketM...
    海濤_meteor閱讀 3,837評論 1 2