Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
Nacos2.0版本相比1.X新增了gRPC的通信方式,因此需要增加2个端口。新增端口是在配置的主端口(server.port)基础上,进行一定偏移量自动生成。
nacos1 120.222.333.444:8848
nacos2 121.222.333.444:8848
nacos3 123.222.333.444:8848
2.把压缩包上传到服务器中解压,并进入nacos目录中
tar -zxvf nacos-server-2.1.0.tar.gz
cd nacos
3.进入Nacos的conf目录,找到cluster.conf.example和application.properties
3.1 在application.properties文件最下面添加如下代码
db.num=1
db.url.0=jdbc:mysql://IP:3306/nacos-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=root
### 在3个nacos中分别添加该配置,注意区分IP地址,如果这里填写的是外网地址,则cluster.conf也全部填写外网地址,否则就必须都填写内网地址(填写内网地址必须保证是同一个账号下的服务器资源)
### Specify local server's IP:
nacos.inetutils.ip-address=120.222.333.444
2.将cluster.conf.example复制为cluster.conf文件,并在cluster.conf中作如下的配置,这里使用的是外网地址,内网地址不做演示
120.222.333.444:8848
121.222.333.444:8848
123.222.333.444:8848
4.1 进入bin目录启动nacos
# 启动
./startup.sh
# 关闭
./shutdown.sh
在启动之前可以调整nacos的配置
vim startup.sh
部分配置文件
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
#在该位置修改启动时占用的内存
#默认是-server -Xms1g -Xmx2g -Xmn1g
JAVA_OPT="${JAVA_OPT} -server -Xms500m -Xmx1000m -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
启动完成可以查看是否启动成功
http://120.222.333.444:8848/nacos
http://121.222.333.444:8848/nacos
http://123.222.333.444:8848/nacos
5.配置nginx负载均衡和TCP转发 Nginx 服务器地址 : 120.222.333.444 5.1配置反向代理
http {
gzip on;
# weight 权重
upstream nacos{
server 120.222.333.444:8848 weight=5;
server 120.222.333.444:8848 weight=2;
server 120.222.333.444:8848 weight=1;
}
server {
listen 8888;
server_name localhost;
}
location / {
proxy_set_header Host $http_host;
proxy_pass http://nacos;
}
}
5.2 配置TCP转发
stream {
#客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求
upstream nacosGrpc {
server 120.222.333.444:9848 weight=5;
server 121.222.333.444:9848 weight=2;
server 121.222.333.444:9848 weight=1;
}
server {
listen 9888;
proxy_pass nacosGrpc;
}
}
完整配置文件
stream {
#客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求
upstream nacosGrpc {
server 120.222.333.444:9848 weight=5;
server 121.222.333.444:9848 weight=2;
server 122.222.333.444:9848 weight=1;
}
server {
listen 9888;
proxy_pass nacosGrpc;
}
}
events {
worker_connections 1024;
}
http {
gzip on;
# weight 权重
upstream nacos{
server 120.222.333.444:8848 weight=5;
server 120.222.333.444:8848 weight=2;
server 120.222.333.444:8848 weight=1;
}
server {
listen 8888;
server_name localhost;
}
location / {
proxy_set_header Host $http_host;
proxy_pass http://nacos;
}
}
7.访问
访问 http://120.222.333.444:8888/nacos 看到Nacos的登录页,即可正常使用Nacos
7.连接
spring:
cloud:
nacos:
# nacos地址
server-addr: 120.222.333.444:8888
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有