1. 首页 > 软件下载 > 正文

Nacos下载-Alibaba Nacos配置中心下载地址-Nacos下载方法

1. Nacos简介与版本说明

Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的服务发现和配置管理平台,致力于帮助用户发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助用户快速实现动态服务发现、服务配置、服务元数据及流量管理。更多学习教程www.fgedu.net.cn。

Nacos从3.0版本开始全面拥抱AI,支持MCP Registry、Agent Registry和Skills Registry,成为AI时代的服务治理平台。学习交流加群风哥微信: itpux-com。Nacos已经在阿里巴巴的生产环境中经过10年验证,支持具有数百万服务的大规模场景。

Nacos核心功能:

– 动态配置服务:中心化、外部化、动态化的配置管理
– 服务发现与管理:支持DNS-Based和RPC-Based模式的服务发现
– 动态DNS服务:支持权重路由、流量控制的DNS解析服务
– AI Registry:支持MCP、Agent、Prompt、Skills等AI资源管理
– 多租户支持:命名空间隔离,多环境管理
– 高可用集群:支持主从复制和集群部署
– 安全认证:支持用户认证、权限控制和SSL加密

2. Nacos版本选择与下载地址

Nacos提供多个版本供用户选择,生产环境建议使用稳定版本。

Nacos版本状态:

版本系列 状态 最新版本 发布日期 Java版本 说明
3.2.x Latest 3.2.0 2026-03-27 Java 17+ AI Registry增强版
3.0.x Stable 3.0.1 2025-XX-XX Java 17+ AI支持版本
2.5.x Stable 2.5.2 2025-11-26 Java 8+ 传统微服务版本
2.4.x Stable 2.4.3 2024-10-12 Java 8+ 长期支持版本
2.3.x Stable 2.3.2 2024-04-03 Java 8+ 稳定版本
1.x Legacy 1.4.6 2023-XX-XX Java 8+ 已停止维护

版本选择建议:

– AI应用场景:Nacos 3.2.0(支持MCP、Agent、Skills Registry)
– 新项目推荐:Nacos 2.5.2(稳定版,Java 8+兼容)
– 生产环境:使用Stable版本,避免使用Beta版本
– 传统微服务:Nacos 2.4.x或2.3.x系列
– Java 8环境:必须使用2.x系列

官方下载地址:

Nacos官网:https://nacos.io/
GitHub发布页:https://github.com/alibaba/nacos/releases
下载页面:https://nacos.io/en/download/release-history/

3. Nacos下载方式详解

方式一:GitHub直接下载

$ cd /fgeudb/software
$ wget https://github.com/alibaba/nacos/releases/download/3.2.0/nacos-server-3.2.0.tar.gz

输出示例如下:
–2026-04-04 10:00:00– https://github.com/alibaba/nacos/releases/download/3.2.0/nacos-server-3.2.0.tar.gz
Resolving github.com (github.com)… 140.82.121.3
Connecting to github.com (github.com)|140.82.121.3|:443… connected.
HTTP request sent, awaiting response… 302 Found
Location: https://objects.githubusercontent.com/… [following]
–2026-04-04 10:00:01– https://objects.githubusercontent.com/…
Length: 156789012 (150M) [application/octet-stream]
Saving to: ‘nacos-server-3.2.0.tar.gz’

nacos-server-3.2.0.tar.gz 100%[======================================================================>] 149.52M 8.5MB/s in 18s

2026-04-04 10:00:19 (8.5 MB/s) – ‘nacos-server-3.2.0.tar.gz’ saved [156789012/156789012]

方式二:使用nacos-setup一键安装

Linux/macOS一键安装:
$ curl -fsSL https://nacos.io/nacos-installer.sh | sudo bash

输出示例如下:
Downloading nacos-installer…
Installing Nacos…
Downloading Nacos server 3.2.0…
Extracting files…
Configuring environment…
Nacos installed successfully!
Installation path: /usr/local/nacos

Windows PowerShell安装:
> powershell -NoProfile -ExecutionPolicy Bypass -Command “iwr -UseBasicParsing https://nacos.io/nacos-installer.ps1 | iex”

输出示例如下:
Downloading nacos-installer…
Installing Nacos…
Nacos installed successfully!

方式三:下载Nacos 2.5.x稳定版

$ cd /fgeudb/software
$ wget https://github.com/alibaba/nacos/releases/download/2.5.2/nacos-server-2.5.2.tar.gz

输出示例如下:
–2026-04-04 10:01:00– https://github.com/alibaba/nacos/releases/download/2.5.2/nacos-server-2.5.2.tar.gz
Resolving github.com (github.com)… 140.82.121.3
Connecting to github.com (github.com)|140.82.121.3|:443… connected.
HTTP request sent, awaiting response… 302 Found
Length: 145678901 (139M) [application/octet-stream]
Saving to: ‘nacos-server-2.5.2.tar.gz’

nacos-server-2.5.2.tar.gz 100%[======================================================================>] 138.93M 7.2MB/s in 19s

2026-04-04 10:01:19 (7.2 MB/s) – ‘nacos-server-2.5.2.tar.gz’ saved [145678901/145678901]

方式四:使用Docker镜像部署

拉取最新镜像:
$ docker pull nacos/nacos-server:latest

输出示例如下:
latest: Pulling from nacos/nacos-server
Digest: sha256:abc123def456…
Status: Downloaded newer image for nacos/nacos-server:latest

拉取指定版本镜像:
$ docker pull nacos/nacos-server:v3.2.0

启动单机模式容器:
$ docker run –name nacos-standalone \
-e MODE=standalone \
-e NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789 \
-e NACOS_AUTH_IDENTITY_KEY=serverIdentity \
-e NACOS_AUTH_IDENTITY_VALUE=security \
-p 8080:8080 \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
-d nacos/nacos-server:v3.2.0

输出示例如下:
abc123def456789…

查看容器状态:
$ docker ps | grep nacos

输出示例如下:
abc123def456 nacos/nacos-server:v3.2.0 “bin/docker-startup.…” 10 seconds ago Up 9 seconds 0.0.0.0:8080->8080/tcp, 0.0.0.0:8848->8848/tcp, 0.0.0.0:9848->9848/tcp, 0.0.0.0:9849->9849/tcp nacos-standalone

方式五:源码编译安装

克隆源码仓库:
$ git clone https://github.com/alibaba/nacos.git
$ cd nacos/

切换到指定版本分支:
$ git checkout 3.2.0

编译打包:
$ mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U

输出示例如下:
[INFO] Scanning for projects…
[INFO] ————————————————————————
[INFO] Building Nacos 3.2.0
[INFO] ————————————————————————

[INFO] BUILD SUCCESS
[INFO] ————————————————————————
[INFO] Total time: 05:23 min
[INFO] Finished at: 2026-04-04T10:05:00+08:00

查看编译结果:
$ ls -la distribution/target/

输出示例如下:
total 156789
drwxr-xr-x 2 root root 4096 Apr 4 10:05 .
drwxr-xr-x 3 root root 4096 Apr 4 10:05 ..
-rw-r–r– 1 root root 156789012 Apr 4 10:05 nacos-server-3.2.0.tar.gz
-rw-r–r– 1 root root 145678901 Apr 4 10:05 nacos-server-3.2.0.zip

4. Nacos安装部署实战

步骤1:环境准备

检查Java版本:
$ java -version

输出示例如下(Nacos 3.x需要Java 17+):
openjdk version “17.0.13” 2026-01-21
OpenJDK Runtime Environment (build 17.0.13+11-Ubunt-1)
OpenJDK 64-Bit Server VM (build 17.0.13+11-Ubunt-1, mixed mode, sharing)

设置JAVA_HOME环境变量:
$ export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
$ echo “export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64” >> ~/.bashrc
$ source ~/.bashrc

检查Maven版本(源码编译需要):
$ mvn -version

输出示例如下:
Apache Maven 3.9.6 (bc78907ecb5e5e5c6e5f5e5e5e5e5e5e5e5e5e5e)
Maven home: /usr/share/maven
Java version: 17.0.13, vendor: Oracle Corporation

步骤2:解压安装

创建安装目录:
# mkdir -p /fgeudb/nacos

解压安装包:
$ cd /fgeudb/software
$ tar -zxvf nacos-server-3.2.0.tar.gz -C /fgeudb/nacos/

输出示例如下:
nacos/
nacos/LICENSE
nacos/NOTICE
nacos/target/
nacos/target/nacos-server.jar
nacos/conf/
nacos/conf/application.properties
nacos/conf/application.properties.example
nacos/conf/cluster.conf.example
nacos/conf/nacos-logback.xml
nacos/conf/schema.sql
nacos/conf/1.4.0-ipv6_support-update.sql
nacos/bin/
nacos/bin/startup.sh
nacos/bin/shutdown.sh
nacos/bin/startup.cmd
nacos/bin/shutdown.cmd

查看安装目录结构:
$ ls -la /fgeudb/nacos/nacos/

输出示例如下:
total 32
drwxr-xr-x 5 root root 4096 Apr 4 10:03 .
drwxr-xr-x 3 root root 4096 Apr 4 10:03 ..
drwxr-xr-x 2 root root 4096 Apr 4 10:03 bin
drwxr-xr-x 2 root root 4096 Apr 4 10:03 conf
-rw-r–r– 1 root root 11358 Mar 27 10:00 LICENSE
-rw-r–r– 1 root root 3215 Mar 27 10:00 NOTICE
drwxr-xr-x 2 root root 4096 Apr 4 10:03 target

步骤3:配置单机模式

编辑application.properties配置文件:
# vi /fgeudb/nacos/nacos/conf/application.properties

单机模式核心配置:
server.port=8848
nacos.server-addr=192.168.1.51:8848
spring.datasource.platform=mysql

数据库配置(生产环境必须使用外部数据库):
db.num=1
db.url.0=jdbc:mysql://192.168.1.51:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai
db.user.0=nacos
db.password.0=nacos123

鉴权配置(生产环境必须开启):
nacos.core.auth.enabled=true
nacos.core.auth.server.identity.key=serverIdentity
nacos.core.auth.server.identity.value=security
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789

步骤4:初始化数据库

创建数据库和用户:
$ mysql -u root -p

输出示例如下:
Enter password:
Welcome to the MySQL monitor.
mysql> CREATE DATABASE nacos CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
Query OK, 1 row affected (0.01 sec)

mysql> CREATE USER ‘nacos’@’%’ IDENTIFIED BY ‘nacos123’;
Query OK, 0 rows affected (0.02 sec)

mysql> GRANT ALL PRIVILEGES ON nacos.* TO ‘nacos’@’%’;
Query OK, 0 rows affected (0.01 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

mysql> exit
Bye

导入数据库表结构:
$ mysql -u nacos -p nacos < /fgeudb/nacos/nacos/conf/schema.sql 输出示例如下: Enter password:

步骤5:启动Nacos服务

单机模式启动:
$ cd /fgeudb/nacos/nacos/bin
$ sh startup.sh -m standalone

输出示例如下:
,–.,–.,–. ,–.,–. ,–. ,–.,–. ,–. ,–.
| ‘–‘ | `–‘ | | | | | ‘–‘ | `–‘ | | | |
| .–. | ,–. | | | | | .–. | ,–. | | | |
| | | | | | | | | | | | | | | | | | | |
`–‘ `–‘ `–‘ `–‘ `–‘ `–‘ `–‘ `–‘ `–‘ `–‘

Nacos 3.2.0

Nacos is starting, you can check the /fgeudb/nacos/nacos/logs/start.out

查看启动日志:
$ tail -f /fgeudb/nacos/nacos/logs/start.out

输出示例如下:
2026-04-04 10:05:00,000 INFO Nacos is starting…
2026-04-04 10:05:05,000 INFO Nacos started successfully in standalone mode. Externalize configuration storage is used.
2026-04-04 10:05:05,000 INFO Nacos is ready to serve requests on port 8848
2026-04-04 10:05:05,000 INFO Nacos Console is available at http://192.168.1.51:8848/nacos

5. Nacos生产环境配置优化

步骤1:配置JVM内存参数

编辑启动脚本:
# vi /fgeudb/nacos/nacos/bin/startup.sh

修改JVM参数:
JAVA_OPT=”${JAVA_OPT} -server -Xms4g -Xmx8g -Xmn2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m”
JAVA_OPT=”${JAVA_OPT} -XX:+UseG1GC -XX:MaxGCPauseMillis=200″
JAVA_OPT=”${JAVA_OPT} -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/fgeudb/nacos/logs/heapdump.hprof”

生产环境JVM参数说明:
-Xms4g 初始堆内存4GB
-Xmx8g 最大堆内存8GB
-Xmn2g 年轻代内存2GB
-XX:MetaspaceSize 元空间初始大小
-XX:MaxMetaspaceSize 元空间最大大小
-XX:+UseG1GC 使用G1垃圾收集器,学习交流加群风哥QQ113257174
-XX:MaxGCPauseMillis 最大GC停顿时间200ms

步骤2:配置数据库连接池

编辑application.properties配置文件:
# vi /fgeudb/nacos/nacos/conf/application.properties

数据库连接池配置:
spring.sql.init.platform=mysql
db.pool.config.driverClassName=com.mysql.cj.jdbc.Driver
db.pool.config.initialSize=10
db.pool.config.maxActive=100
db.pool.config.maxIdle=50
db.pool.config.minIdle=10
db.pool.config.maxWait=30000
db.pool.config.timeBetweenEvictionRunsMillis=60000
db.pool.config.minEvictableIdleTimeMillis=300000
db.pool.config.validationQuery=SELECT 1
db.pool.config.testWhileIdle=true
db.pool.config.testOnBorrow=false
db.pool.config.testOnReturn=false

步骤3:配置日志和监控

编辑application.properties配置文件:
# vi /fgeudb/nacos/nacos/conf/application.properties

日志配置:
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t “%r” %s %b %D
server.tomcat.accesslog.directory=/fgeudb/nacos/logs

监控配置:
management.endpoints.web.exposure.include=*
management.metrics.export.prometheus.enabled=true
nacos.monitor.trace.enabled=true

步骤4:配置系统限制

设置文件描述符限制:
# vi /etc/security/limits.conf

添加以下内容:
nacos soft nofile 65536
nacos hard nofile 65536
nacos soft nproc 65536
nacos hard nproc 65536

查看当前限制:
$ ulimit -n

输出示例如下:
65536

设置内核参数:
# vi /etc/sysctl.conf

添加以下内容:
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30

使配置生效:
# sysctl -p

6. Nacos集群配置方案

集群架构说明

Nacos集群推荐架构:
– 最少3个节点组成集群
– 使用外部MySQL数据库存储数据
– 前端使用Nginx负载均衡
– 节点间通过Raft协议同步数据

集群节点规划示例:
节点1:192.168.1.51:8848
节点2:192.168.1.52:8848
节点3:192.168.1.53:8848

步骤1:配置集群节点

创建集群配置文件:
# vi /fgeudb/nacos/nacos/conf/cluster.conf

添加集群节点列表:
192.168.1.51:8848
192.168.1.52:8848
192.168.1.53:8848

编辑application.properties配置文件:
# vi /fgeudb/nacos/nacos/conf/application.properties

集群模式配置:
nacos.inetutils.ip-address=192.168.1.51
nacos.server-addr=192.168.1.51:8848

数据库配置(所有节点使用相同数据库):
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.1.51:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai
db.user.0=nacos
db.password.0=nacos123

步骤2:启动集群节点

在所有节点上启动Nacos:
$ cd /fgeudb/nacos/nacos/bin
$ sh startup.sh

输出示例如下:
,–.,–.,–. ,–.,–. ,–. ,–.,–. ,–. ,–.
| ‘–‘ | `–‘ | | | | | ‘–‘ | `–‘ | | | |
| .–. | ,–. | | | | | .–. | ,–. | | | |
| | | | | | | | | | | | | | | | | | | |
`–‘ `–‘ `–‘ `–‘ `–‘ `–‘ `–‘ `–‘ `–‘ `–‘

Nacos 3.2.0

Nacos is starting in cluster mode…

查看集群状态:
$ curl -X GET “http://192.168.1.51:8848/nacos/v1/ns/operator/servers”

输出示例如下:
{
“servers”: [
{
“ip”: “192.168.1.51”,
“port”: 8848,
“state”: “UP”,
“extendInfo”: {
“lastRefreshTime”: 1712217600000,
“raftMetaData”: {
“leader”: “192.168.1.51:7848”
}
}
},
{
“ip”: “192.168.1.52”,
“port”: 8848,
“state”: “UP”
},
{
“ip”: “192.168.1.53”,
“port”: 8848,
“state”: “UP”
}
]
}

步骤3:配置Nginx负载均衡

编辑Nginx配置文件:
# vi /etc/nginx/conf.d/nacos.conf

upstream nacos-cluster {
server 192.168.1.51:8848 weight=1;
server 192.168.1.52:8848 weight=1;
server 192.168.1.53:8848 weight=1;
}

server {
listen 8848;
server_name nacos.fgedu.net.cn;

location /nacos/ {
proxy_pass http://nacos-cluster/nacos/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 60s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;
}
}

重启Nginx:
# nginx -t
# nginx -s reload

7. Nacos安全配置

步骤1:开启鉴权认证

编辑application.properties配置文件:
# vi /fgeudb/nacos/nacos/conf/application.properties

开启鉴权:
nacos.core.auth.enabled=true
nacos.core.auth.server.identity.key=serverIdentity
nacos.core.auth.server.identity.value=security
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789

配置说明:
– nacos.core.auth.enabled:开启鉴权认证
– nacos.core.auth.server.identity.key/value:服务端身份标识
– nacos.core.auth.plugin.nacos.token.secret.key:JWT Token密钥,必须大于32字符

步骤2:创建用户和角色

登录Nacos控制台:
http://192.168.1.51:8848/nacos

默认用户名:nacos
默认密码:nacos

创建新用户(通过API):
$ curl -X POST “http://192.168.1.51:8848/nacos/v1/auth/users” \
-d “username=admin&password=admin123”

输出示例如下:
ok

创建角色:
$ curl -X POST “http://192.168.1.51:8848/nacos/v1/auth/roles” \
-d “role=ADMIN&username=admin”

输出示例如下:
ok

授权角色:
$ curl -X POST “http://192.168.1.51:8848/nacos/v1/auth/permissions” \
-d “role=ADMIN&resource=*:*&action=*”

输出示例如下:
ok

步骤3:配置SSL/HTTPS

生成SSL证书:
$ keytool -genkeypair -alias nacos -keyalg RSA -keysize 2048 -validity 365 \
-keystore /fgeudb/nacos/conf/nacos.keystore \
-storepass changeit \
-dname “CN=nacos.fgedu.net.cn, OU=IT, O=, L=Beijing, ST=Beijing, C=CN”

编辑application.properties配置文件:
# vi /fgeudb/nacos/nacos/conf/application.properties

SSL配置:
server.ssl.enabled=true
server.ssl.key-store=/fgeudb/nacos/conf/nacos.keystore
server.ssl.key-store-password=changeit
server.ssl.key-store-type=JKS
server.ssl.key-alias=nacos

步骤4:配置命名空间隔离

创建命名空间(通过API):
$ curl -X POST “http://192.168.1.51:8848/nacos/v1/console/namespaces” \
-d “customNamespaceId=dev&namespaceName=开发环境&namespaceDesc=开发环境命名空间”

输出示例如下:
true

创建测试环境命名空间:
$ curl -X POST “http://192.168.1.51:8848/nacos/v1/console/namespaces” \
-d “customNamespaceId=test&namespaceName=测试环境&namespaceDesc=测试环境命名空间”

输出示例如下:
true

创建生产环境命名空间:
$ curl -X POST “http://192.168.1.51:8848/nacos/v1/console/namespaces” \
-d “customNamespaceId=prod&namespaceName=生产环境&namespaceDesc=生产环境命名空间”

输出示例如下:
true

查看命名空间列表:
$ curl -X GET “http://192.168.1.51:8848/nacos/v1/console/namespaces”

输出示例如下:
[
{
“namespace”: “public”,
“namespaceShowName”: “公共命名空间”,
“namespaceDesc”: “公共命名空间”,
“quota”: 200,
“configCount”: 0
},
{
“namespace”: “dev”,
“namespaceShowName”: “开发环境”,
“namespaceDesc”: “开发环境命名空间”,
“quota”: 200,
“configCount”: 0
},
{
“namespace”: “test”,
“namespaceShowName”: “测试环境”,
“namespaceDesc”: “测试环境命名空间”,
“quota”: 200,
“configCount”: 0
},
{
“namespace”: “prod”,
“namespaceShowName”: “生产环境”,
“namespaceDesc”: “生产环境命名空间”,
“quota”: 200,
“configCount”: 0
}
]

8. 安装验证与测试

查看Nacos状态

查看进程状态:
$ ps -ef | grep nacos

输出示例如下:
nacos 12345 1 5 10:05 ? 00:00:30 /usr/lib/jvm/java-17-openjdk-amd64/bin/java -server -Xms4g -Xmx8g -Dnacos.home=/fgeudb/nacos/nacos -jar /fgeudb/nacos/nacos/target/nacos-server.jar

查看端口监听:
$ netstat -tlnp | grep java

输出示例如下:
tcp6 0 0 :::8848 :::* LISTEN 12345/java
tcp6 0 0 :::9848 :::* LISTEN 12345/java
tcp6 0 0 :::9849 :::* LISTEN 12345/java

访问Web管理控制台

打开浏览器访问:
http://192.168.1.51:8848/nacos

默认用户名:nacos
默认密码:nacos

控制台首页显示:
– 命名空间列表
– 配置管理
– 服务管理
– AI Registry(3.x版本)

测试配置管理功能

发布配置:
$ curl -X POST “http://192.168.1.51:8848/nacos/v1/cs/configs” \
-d “dataId=application.properties&group=DEFAULT_GROUP&content=server.port=8080\nspring.application.name=demo-service”

输出示例如下:
true

获取配置:
$ curl -X GET “http://192.168.1.51:8848/nacos/v1/cs/configs?dataId=application.properties&group=DEFAULT_GROUP”

输出示例如下:
server.port=8080
spring.application.name=demo-service

监听配置变化:
$ curl -X POST “http://192.168.1.51:8848/nacos/v1/cs/configs/listener” \
-d “dataId=application.properties&group=DEFAULT_GROUP”

输出示例如下(配置变化时会返回新内容):

测试服务注册与发现

注册服务实例:
$ curl -X POST “http://192.168.1.51:8848/nacos/v1/ns/instance” \
-d “serviceName=demo-service&ip=192.168.1.100&port=8080”

输出示例如下:
ok

查询服务实例列表:
$ curl -X GET “http://192.168.1.51:8848/nacos/v1/ns/instance/list?serviceName=demo-service”

输出示例如下:
{
“name”: “DEFAULT_GROUP@@demo-service”,
“groupName”: “DEFAULT_GROUP”,
“clusters”: “”,
“cacheMillis”: 10000,
“hosts”: [
{
“instanceId”: “192.168.1.100#8080#DEFAULT#DEFAULT_GROUP@@demo-service”,
“ip”: “192.168.1.100”,
“port”: 8080,
“weight”: 1.0,
“healthy”: true,
“enabled”: true,
“ephemeral”: true,
“clusterName”: “DEFAULT”,
“serviceName”: “DEFAULT_GROUP@@demo-service”,
“metadata”: {}
}
],
“checksum”: “”,
“lastRefTime”: 1712217600000
}

9. 客户端连接与使用

Spring Cloud集成配置

Maven依赖:

com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-config
2023.0.1.0


com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
2023.0.1.0

bootstrap.yml配置:
spring:
application:
name: demo-service
cloud:
nacos:
server-addr: 192.168.1.51:8848
username: nacos
password: nacos
config:
namespace: dev
group: DEFAULT_GROUP
file-extension: yaml
shared-configs:
– data-id: common.yaml
group: DEFAULT_GROUP
refresh: true
discovery:
namespace: dev
group: DEFAULT_GROUP
service: ${spring.application.name}

Dubbo集成配置

Maven依赖:

org.apache.dubbo
dubbo-registry-nacos
3.3.0

application.yml配置:
dubbo:
application:
name: demo-service
registry:
address: nacos://192.168.1.51:8848
username: nacos
password: nacos
parameters:
namespace: dev
group: DEFAULT_GROUP
protocol:
name: dubbo
port: 20880

配置动态刷新

使用@RefreshScope注解实现配置动态刷新:
@RestController
@RefreshScope
public class ConfigController {

@Value(“${app.config.value:default}”)
private String configValue;

@GetMapping(“/config”)
public String getConfig() {
return “Current config value: ” + configValue;
}
}

在Nacos控制台修改配置后,应用会自动刷新配置值。

10. 常见问题与解决方案

问题1:Nacos启动失败-数据库连接错误

错误日志:
Nacos Server did not start because the database is not ready

解决方案:
1. 检查数据库连接配置:
db.url.0=jdbc:mysql://192.168.1.51:3306/nacos?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
db.user.0=nacos
db.password.0=nacos123

2. 检查数据库是否可连接:
$ mysql -h 192.168.1.51 -u nacos -p nacos

3. 检查数据库表是否初始化:
$ mysql -u nacos -p nacos -e “SHOW TABLES;”

输出示例如下:
+————————+
| Tables_in_nacos |
+————————+
| config_info |
| config_info_aggr |
| config_info_beta |
| config_info_tag |
| config_tags_relation |
| group_capacity |
| his_config_info |
| permissions |
| roles |
| tenant_capacity |
| tenant_info |
| users |
+————————+

问题2:集群节点无法加入

错误日志:
Cluster node join failed

解决方案:
1. 检查cluster.conf配置:
$ cat /fgeudb/nacos/nacos/conf/cluster.conf

输出示例如下:
192.168.1.51:8848
192.168.1.52:8848
192.168.1.53:8848

2. 检查防火墙端口:
# firewall-cmd –add-port=8848/tcp –permanent
# firewall-cmd –add-port=9848/tcp –permanent
# firewall-cmd –add-port=9849/tcp –permanent
# firewall-cmd –reload

3. 检查节点间网络连通性:
$ ping 192.168.1.52
$ telnet 192.168.1.52 8848

问题3:鉴权失败-403 Forbidden

错误日志:
403 Forbidden – Authorization failed

解决方案:
1. 检查鉴权配置:
nacos.core.auth.enabled=true
nacos.core.auth.server.identity.key=serverIdentity
nacos.core.auth.server.identity.value=security
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789

2. 检查用户名密码是否正确:
$ curl -X POST “http://192.168.1.51:8848/nacos/v1/auth/login” \
-d “username=nacos&password=nacos”

输出示例如下:
{“accessToken”:”eyJhbGciOiJIUzI1NiJ9…”,”tokenTtl”:36000}

3. 使用正确的Token访问:
$ curl -X GET “http://192.168.1.51:8848/nacos/v1/cs/configs?dataId=test&group=DEFAULT_GROUP” \
-H “accessToken: eyJhbGciOiJIUzI1NiJ9…”

问题4:配置无法动态刷新

症状:修改Nacos配置后,应用没有自动刷新

解决方案:
1. 检查是否添加了@RefreshScope注解:
@RestController
@RefreshScope
public class ConfigController {
@Value(“${app.config.value}”)
private String configValue;
}

2. 检查配置的data-id和group是否正确:
spring.cloud.nacos.config.file-extension=yaml
spring.cloud.nacos.config.group=DEFAULT_GROUP

3. 检查是否开启了配置刷新:
spring.cloud.nacos.config.refresh-enabled=true

4. 查看Nacos客户端日志:
$ tail -f /var/log/app.log | grep Nacos

Nacos服务管理命令

启动服务:
$ sh /fgeudb/nacos/nacos/bin/startup.sh -m standalone

停止服务:
$ sh /fgeudb/nacos/nacos/bin/shutdown.sh

查看服务状态:
$ curl -X GET “http://192.168.1.51:8848/nacos/v1/ns/operator/metrics”

输出示例如下:
{
“status”: “UP”,
“serviceCount”: 10,
“instanceCount”: 25,
“subscribeCount”: 15,
“raftNotifyTaskQueueSize”: 0
}

配置系统服务:
# vi /etc/systemd/system/nacos.service

[Unit]
Description=Nacos Server
After=network.target

[Service]
Type=forking
User=nacos
Group=nacos
ExecStart=/fgeudb/nacos/nacos/bin/startup.sh -m standalone
ExecStop=/fgeudb/nacos/nacos/bin/shutdown.sh
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

启用服务:
# systemctl daemon-reload
# systemctl enable nacos
# systemctl start nacos

生产环境建议
1. 使用Nacos 2.5.x或3.2.x稳定版本;2. 生产环境必须使用外部MySQL数据库;3. 开启鉴权认证并配置强密码;4. 部署至少3节点集群实现高可用;5. 配置命名空间实现环境隔离;6. 使用Nginx负载均衡客户端请求;7. 配置JVM内存参数(建议8GB以上);8. 开启配置和服务的监控告警;9. 定期备份配置数据;10. 配置系统服务实现自动重启。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息