如何固定ECS應用變更過程中的JDK版本
更新時間:
本文介紹如何固定ECS應用變更過程中的JDK版本,以保證應用在發(fā)生ECS實例擴容時,新擴容的實例和應用中的實例的JDK版本一致。
背景信息
ECS集群默認對導入EDAS的ECS實例自動安裝最新版本的OpenJDK。但是當應用發(fā)生擴容ECS實例時,新擴容的ECS實例與應用里已存在的ECS實例上的OpenJDK版本不一致,在業(yè)務代碼運行時引入一些異常問題。
您可以固定ECS應用變更過程中的JDK版本從而避免這些異常問題。您可以在掛載腳本的啟動前腳本中設置要執(zhí)行的代碼段,代碼段中可以設置指定版本的JDK的下載地址信息,這樣就可以實現(xiàn)在ECS應用的變更過程中(應用擴容、重置ECS實例等)都使用固定版本的JDK。
操作步驟
獲取指定版本JDK的下載地址信息。
將JDK壓縮包的下載地址添加到以下代碼片段。
將以下代碼段中的JDK_DOWNLOAD_URL變量設置為JDK壓縮包的下載地址。
JDK_DOWNLOAD_URL="http://doctest.oss-cn-hangzhou-internal.aliyuncs.com/tmp/oracle-jdk-8u202-linux-x64.tar.gz" JDK_DOWNLOAD_TMP_FILE="/tmp/oracle-jdk-8u202.tar.gz" JDK_HOME="/opt/edas/jdk" JAVA_HOME="${JDK_HOME}/java" if [ ! -f "${JAVA_HOME}/bin/java" ]; then rm -rf ${JAVA_HOME} && mkdir -p ${JDK_HOME} wget -q --dns-timeout=2 --connect-timeout=3 --read-timeout=30 ${JDK_DOWNLOAD_URL} -O ${JDK_DOWNLOAD_TMP_FILE} [ -f "${JDK_DOWNLOAD_TMP_FILE}" ] && tar zxf ${JDK_DOWNLOAD_TMP_FILE} -C ${JDK_HOME} && rm -f ${JDK_DOWNLOAD_TMP_FILE} [ -n "$(ls -ld ${JDK_HOME}/jdk* 2>/dev/null)" ] && mv ${JDK_HOME}/jdk* ${JAVA_HOME} fi chmod -R 755 ${JAVA_HOME}
將以上代碼添加到ECS應用的啟動前腳本。
重啟應用,查看應用的JDK版本是否與設置的版本一致。
說明應用重啟完成后,您也可以登錄ECS實例,查看JDK版本是否與設置的版本一致。
更多說明
如果您要使用指定的OpenJDK,則修改添加到啟動腳本中的代碼段,增加安裝fontconfig操作系統(tǒng)類庫(yum install -y fontconfig)的內容。
如果ECS集群應用想使用JDK 11或其他Vendor、Version的JDK,也可以使用掛載腳本的方式,將要指定的JDK安裝到/opt/edas/jdk/java或者/opt/ali/alijdk目錄下,即可達到固定JDK版本的目的。
文檔內容是否對您有幫助?