nacos單機本地配置文件存儲位置方式
nacos單機本地配置文件存儲位置
C:\Users***\nacos\config\config_rpc_client_nacos\
單機版Nacos文件配置問題
Nacos服務自動關閉
在使用Nacos時,有時候會遇到服務自動關閉的情況。
這通常涉及到三方面的原因:
- 內存配置
- 啟動方式
- 關閉方式
下面逐一說明。
內存配置導致Nacos關閉
Nacos最新版本默認的JVM配置是2G,如果你的服務器配置比較低,在這樣的默認配置下會導致OOM情況的發生。
startup.sh中配置項:
if [[ "${MODE}" == "standalone" ]]; then JAVA_OPT="${JAVA_OPT} -Xms512m -Xmx512m -Xmn256m" JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=true" else if [[ "${EMBEDDED_STORAGE}" == "embedded" ]]; then JAVA_OPT="${JAVA_OPT} -DembeddedStorage=true" fi JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m" JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/logs/java_heapdump.hprof" JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages" fi
這種情況,要麼升級服務器配置,要麼調整JVM參數,如果非必須建議調整JVM參數。除非業務量必須需要這麼大的配置。
啟動方式導致關閉
使用Nacos較低版本時,比如nacos 0.7.0 releases及以下版本時,Linux下如下方式啟動:
sh startup.sh -m standalone
那麼,當關閉窗口之後,Nacos服務會自動退出。這是因為沒有作為後臺進程啟動的原因。
解決方案,啟動時作為後臺進程進行啟動:
sh startup.sh -m standalone & // 或 setsid sh startup.sh -m standalone &
在高版本中,此問題已經得到解決,腳本中執行Java程序時,用的便是後臺進程。
shutdown腳本誤殺
在較低版本時,默認的shutdown.sh腳本腳本在集群情況下執行會將同一臺機子上的所有節點都關閉掉,因為shell命令查找的是有nacos.nacos標記的pid,當搭建偽集群的情況,就會發生被誤殺的情況。
為瞭避免shutdown.sh腳本的誤殺,應該默認關閉當前目錄下的節點更為安全,例如將原腳本更改為:
#!/bin/sh # Copyright 1999-2018 Alibaba Group Holding Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. BIN_DIR=$(cd `dirname $0`;pwd) #獲取項目根目錄 DEPLOY_DIR=$(cd ${BIN_DIR};cd ..;pwd) pid=`ps ax | grep -i $DEPLOY_DIR |grep java | grep -v grep | awk '{print $1}'` if [ -z "$pid" ] ; then echo "No nacosServer running." exit -1; fi echo "The nacosServer(${pid}) is running..." kill ${pid} echo "Send shutdown request to nacosServer(${pid}) OK"
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- SpringCloud Alibaba項目實戰之nacos-server服務搭建過程
- Docker運行Nacos容器自動退出問題的解決方法
- Docker+nacos+seata1.3.0安裝與使用配置教程
- 如何將自己的python代碼發佈在pip install給別人使用你知道嗎
- Docker安裝Nacos詳細圖文教程