Nacos通过LoadBalanced实现负载均衡远程调用
This commit is contained in:
		
							
								
								
									
										0
									
								
								nacos/bin/logs/access_log.2023-08-16.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								nacos/bin/logs/access_log.2023-08-16.log
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										24
									
								
								nacos/bin/shutdown.cmd
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										24
									
								
								nacos/bin/shutdown.cmd
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
@echo off
 | 
			
		||||
rem Copyright 1999-2018 Alibaba Group Holding Ltd.
 | 
			
		||||
rem Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
rem you may not use this file except in compliance with the License.
 | 
			
		||||
rem You may obtain a copy of the License at
 | 
			
		||||
rem
 | 
			
		||||
rem      http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
rem
 | 
			
		||||
rem Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
rem distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
rem See the License for the specific language governing permissions and
 | 
			
		||||
rem limitations under the License.
 | 
			
		||||
if not exist "%JAVA_HOME%\bin\jps.exe" echo Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better! & EXIT /B 1
 | 
			
		||||
 | 
			
		||||
setlocal
 | 
			
		||||
 | 
			
		||||
set "PATH=%JAVA_HOME%\bin;%PATH%"
 | 
			
		||||
 | 
			
		||||
echo killing nacos server
 | 
			
		||||
 | 
			
		||||
for /f "tokens=1" %%i in ('jps -m ^| find "nacos.nacos"') do ( taskkill /F /PID %%i )
 | 
			
		||||
 | 
			
		||||
echo Done!
 | 
			
		||||
							
								
								
									
										28
									
								
								nacos/bin/shutdown.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										28
									
								
								nacos/bin/shutdown.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
# 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.
 | 
			
		||||
cd `dirname $0`/../target
 | 
			
		||||
target_dir=`pwd`
 | 
			
		||||
 | 
			
		||||
pid=`ps ax | grep -i 'nacos.nacos' | grep ${target_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"
 | 
			
		||||
							
								
								
									
										95
									
								
								nacos/bin/startup.cmd
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										95
									
								
								nacos/bin/startup.cmd
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,95 @@
 | 
			
		||||
@echo off
 | 
			
		||||
rem Copyright 1999-2018 Alibaba Group Holding Ltd.
 | 
			
		||||
rem Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
rem you may not use this file except in compliance with the License.
 | 
			
		||||
rem You may obtain a copy of the License at
 | 
			
		||||
rem
 | 
			
		||||
rem      http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
rem
 | 
			
		||||
rem Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
rem distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
rem See the License for the specific language governing permissions and
 | 
			
		||||
rem limitations under the License.
 | 
			
		||||
if not exist "%JAVA_HOME%\bin\java.exe" echo Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better! & EXIT /B 1
 | 
			
		||||
set "JAVA=%JAVA_HOME%\bin\java.exe"
 | 
			
		||||
 | 
			
		||||
setlocal enabledelayedexpansion
 | 
			
		||||
 | 
			
		||||
set BASE_DIR=%~dp0
 | 
			
		||||
rem added double quotation marks to avoid the issue caused by the folder names containing spaces.
 | 
			
		||||
rem removed the last 5 chars(which means \bin\) to get the base DIR.
 | 
			
		||||
set BASE_DIR="%BASE_DIR:~0,-5%"
 | 
			
		||||
 | 
			
		||||
set CUSTOM_SEARCH_LOCATIONS=file:%BASE_DIR%/conf/
 | 
			
		||||
 | 
			
		||||
set MODE="cluster"
 | 
			
		||||
set FUNCTION_MODE="all"
 | 
			
		||||
set SERVER=nacos-server
 | 
			
		||||
set MODE_INDEX=-1
 | 
			
		||||
set FUNCTION_MODE_INDEX=-1
 | 
			
		||||
set SERVER_INDEX=-1
 | 
			
		||||
set EMBEDDED_STORAGE_INDEX=-1
 | 
			
		||||
set EMBEDDED_STORAGE=""
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
set i=0
 | 
			
		||||
for %%a in (%*) do (
 | 
			
		||||
    if "%%a" == "-m" ( set /a MODE_INDEX=!i!+1 )
 | 
			
		||||
    if "%%a" == "-f" ( set /a FUNCTION_MODE_INDEX=!i!+1 )
 | 
			
		||||
    if "%%a" == "-s" ( set /a SERVER_INDEX=!i!+1 )
 | 
			
		||||
    if "%%a" == "-p" ( set /a EMBEDDED_STORAGE_INDEX=!i!+1 )
 | 
			
		||||
    set /a i+=1
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
set i=0
 | 
			
		||||
for %%a in (%*) do (
 | 
			
		||||
    if %MODE_INDEX% == !i! ( set MODE="%%a" )
 | 
			
		||||
    if %FUNCTION_MODE_INDEX% == !i! ( set FUNCTION_MODE="%%a" )
 | 
			
		||||
    if %SERVER_INDEX% == !i! (set SERVER="%%a")
 | 
			
		||||
    if %EMBEDDED_STORAGE_INDEX% == !i! (set EMBEDDED_STORAGE="%%a")
 | 
			
		||||
    set /a i+=1
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
rem if nacos startup mode is standalone
 | 
			
		||||
if %MODE% == "standalone" (
 | 
			
		||||
    echo "nacos is starting with standalone"
 | 
			
		||||
	  set "NACOS_OPTS=-Dnacos.standalone=true"
 | 
			
		||||
    set "NACOS_JVM_OPTS=-Xms512m -Xmx512m -Xmn256m"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
rem if nacos startup mode is cluster
 | 
			
		||||
if %MODE% == "cluster" (
 | 
			
		||||
    echo "nacos is starting with cluster"
 | 
			
		||||
	  if %EMBEDDED_STORAGE% == "embedded" (
 | 
			
		||||
	      set "NACOS_OPTS=-DembeddedStorage=true"
 | 
			
		||||
	  )
 | 
			
		||||
 | 
			
		||||
    set "NACOS_JVM_OPTS=-server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=%BASE_DIR%\logs\java_heapdump.hprof -XX:-UseLargePages"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
rem set nacos's functionMode
 | 
			
		||||
if %FUNCTION_MODE% == "config" (
 | 
			
		||||
    set "NACOS_OPTS=%NACOS_OPTS% -Dnacos.functionMode=config"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
if %FUNCTION_MODE% == "naming" (
 | 
			
		||||
    set "NACOS_OPTS=%NACOS_OPTS% -Dnacos.functionMode=naming"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
rem set nacos options
 | 
			
		||||
set "NACOS_OPTS=%NACOS_OPTS% -Dloader.path=%BASE_DIR%/plugins/health,%BASE_DIR%/plugins/cmdb"
 | 
			
		||||
set "NACOS_OPTS=%NACOS_OPTS% -Dnacos.home=%BASE_DIR%"
 | 
			
		||||
set "NACOS_OPTS=%NACOS_OPTS% -jar %BASE_DIR%\target\%SERVER%.jar"
 | 
			
		||||
 | 
			
		||||
rem set nacos spring config location
 | 
			
		||||
set "NACOS_CONFIG_OPTS=--spring.config.additional-location=optional:%CUSTOM_SEARCH_LOCATIONS%"
 | 
			
		||||
 | 
			
		||||
rem set nacos log4j file location
 | 
			
		||||
set "NACOS_LOG4J_OPTS=--logging.config=%BASE_DIR%/conf/nacos-logback.xml"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
set COMMAND="%JAVA%" %NACOS_JVM_OPTS% %NACOS_OPTS% %NACOS_CONFIG_OPTS% %NACOS_LOG4J_OPTS% nacos.nacos %*
 | 
			
		||||
 | 
			
		||||
rem start nacos command
 | 
			
		||||
%COMMAND%
 | 
			
		||||
							
								
								
									
										141
									
								
								nacos/bin/startup.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										141
									
								
								nacos/bin/startup.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,141 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
# 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.
 | 
			
		||||
 | 
			
		||||
cygwin=false
 | 
			
		||||
darwin=false
 | 
			
		||||
os400=false
 | 
			
		||||
case "`uname`" in
 | 
			
		||||
CYGWIN*) cygwin=true;;
 | 
			
		||||
Darwin*) darwin=true;;
 | 
			
		||||
OS400*) os400=true;;
 | 
			
		||||
esac
 | 
			
		||||
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" ] && JAVA_HOME=/opt/taobao/java
 | 
			
		||||
[ ! -e "$JAVA_HOME/bin/java" ] && unset JAVA_HOME
 | 
			
		||||
 | 
			
		||||
if [ -z "$JAVA_HOME" ]; then
 | 
			
		||||
  if $darwin; then
 | 
			
		||||
 | 
			
		||||
    if [ -x '/usr/libexec/java_home' ] ; then
 | 
			
		||||
      export JAVA_HOME=`/usr/libexec/java_home`
 | 
			
		||||
 | 
			
		||||
    elif [ -d "/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home" ]; then
 | 
			
		||||
      export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home"
 | 
			
		||||
    fi
 | 
			
		||||
  else
 | 
			
		||||
    JAVA_PATH=`dirname $(readlink -f $(which javac))`
 | 
			
		||||
    if [ "x$JAVA_PATH" != "x" ]; then
 | 
			
		||||
      export JAVA_HOME=`dirname $JAVA_PATH 2>/dev/null`
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
  if [ -z "$JAVA_HOME" ]; then
 | 
			
		||||
        error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better!"
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
export SERVER="nacos-server"
 | 
			
		||||
export MODE="cluster"
 | 
			
		||||
export FUNCTION_MODE="all"
 | 
			
		||||
export MEMBER_LIST=""
 | 
			
		||||
export EMBEDDED_STORAGE=""
 | 
			
		||||
while getopts ":m:f:s:c:p:" opt
 | 
			
		||||
do
 | 
			
		||||
    case $opt in
 | 
			
		||||
        m)
 | 
			
		||||
            MODE=$OPTARG;;
 | 
			
		||||
        f)
 | 
			
		||||
            FUNCTION_MODE=$OPTARG;;
 | 
			
		||||
        s)
 | 
			
		||||
            SERVER=$OPTARG;;
 | 
			
		||||
        c)
 | 
			
		||||
            MEMBER_LIST=$OPTARG;;
 | 
			
		||||
        p)
 | 
			
		||||
            EMBEDDED_STORAGE=$OPTARG;;
 | 
			
		||||
        ?)
 | 
			
		||||
        echo "Unknown parameter"
 | 
			
		||||
        exit 1;;
 | 
			
		||||
    esac
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
export JAVA_HOME
 | 
			
		||||
export JAVA="$JAVA_HOME/bin/java"
 | 
			
		||||
export BASE_DIR=`cd $(dirname $0)/..; pwd`
 | 
			
		||||
export CUSTOM_SEARCH_LOCATIONS=file:${BASE_DIR}/conf/
 | 
			
		||||
 | 
			
		||||
#===========================================================================================
 | 
			
		||||
# JVM Configuration
 | 
			
		||||
#===========================================================================================
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
if [[ "${FUNCTION_MODE}" == "config" ]]; then
 | 
			
		||||
    JAVA_OPT="${JAVA_OPT} -Dnacos.functionMode=config"
 | 
			
		||||
elif [[ "${FUNCTION_MODE}" == "naming" ]]; then
 | 
			
		||||
    JAVA_OPT="${JAVA_OPT} -Dnacos.functionMode=naming"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
JAVA_OPT="${JAVA_OPT} -Dnacos.member.list=${MEMBER_LIST}"
 | 
			
		||||
 | 
			
		||||
JAVA_MAJOR_VERSION=$($JAVA -version 2>&1 | sed -E -n 's/.* version "([0-9]*).*$/\1/p')
 | 
			
		||||
if [[ "$JAVA_MAJOR_VERSION" -ge "9" ]] ; then
 | 
			
		||||
  JAVA_OPT="${JAVA_OPT} -Xlog:gc*:file=${BASE_DIR}/logs/nacos_gc.log:time,tags:filecount=10,filesize=102400"
 | 
			
		||||
else
 | 
			
		||||
  JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${JAVA_HOME}/lib/ext"
 | 
			
		||||
  JAVA_OPT="${JAVA_OPT} -Xloggc:${BASE_DIR}/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
JAVA_OPT="${JAVA_OPT} -Dloader.path=${BASE_DIR}/plugins/health,${BASE_DIR}/plugins/cmdb"
 | 
			
		||||
JAVA_OPT="${JAVA_OPT} -Dnacos.home=${BASE_DIR}"
 | 
			
		||||
JAVA_OPT="${JAVA_OPT} -jar ${BASE_DIR}/target/${SERVER}.jar"
 | 
			
		||||
JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"
 | 
			
		||||
JAVA_OPT="${JAVA_OPT} --spring.config.additional-location=${CUSTOM_SEARCH_LOCATIONS}"
 | 
			
		||||
JAVA_OPT="${JAVA_OPT} --logging.config=${BASE_DIR}/conf/nacos-logback.xml"
 | 
			
		||||
JAVA_OPT="${JAVA_OPT} --server.max-http-header-size=524288"
 | 
			
		||||
 | 
			
		||||
if [ ! -d "${BASE_DIR}/logs" ]; then
 | 
			
		||||
  mkdir ${BASE_DIR}/logs
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
echo "$JAVA ${JAVA_OPT}"
 | 
			
		||||
 | 
			
		||||
if [[ "${MODE}" == "standalone" ]]; then
 | 
			
		||||
    echo "nacos is starting with standalone"
 | 
			
		||||
else
 | 
			
		||||
    echo "nacos is starting with cluster"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# check the start.out log output file
 | 
			
		||||
if [ ! -f "${BASE_DIR}/logs/start.out" ]; then
 | 
			
		||||
  touch "${BASE_DIR}/logs/start.out"
 | 
			
		||||
fi
 | 
			
		||||
# start
 | 
			
		||||
echo "$JAVA ${JAVA_OPT}" > ${BASE_DIR}/logs/start.out 2>&1 &
 | 
			
		||||
$JAVA ${JAVA_OPT} nacos.nacos
 | 
			
		||||
		Reference in New Issue
	
	Block a user