nacos3.0单机及集群模式安装详细教程

之前和大家分享过JDK17的多版本管理及详细安装过程,然后在项目升级完jdk17后又发现之前的注册和配置中心nacos又用不了,原因是之前的nacos1.3版本的,版本太老了,已经无法适配当前新的JDK和Spring版本了,所以本次决定对Nacos也做个升级,刚好是新项目没有历史包袱,所有本次一步到位直接使用Nacos3.0,刚好Nacos前段时间正式发布了备受期待的3.0版本,该版本nacos不仅支持了MCP管理,还引入了分布式锁等常用功能,接下来,**本篇文章将详细讲解下Nacos3.0的功能都有哪些升级以及如何搭建Nacos3.0的单机版和集群版的详细步骤**!

Nacos 3.0都做了哪些变动?

一、技术栈全面升级

基础环境革新:Nacos 3.0果断拥抱现代技术栈,**将JDK支持升级至17版本,同时适配Spring Boot 3.4.1框架**。这一变革带来了显著的性能提升和安全性增强,同时也意味着开发者需要同步升级开发环境。

特别提醒:仍在使用JDK 8的项目团队需要先行完成环境升级才能使用新版本。

二、运维管理能力强化

全新管理接口:3.0版本引入了一套完善的Admin API体系,极大简化了运维操作流程。这些接口不仅支持控制台的独立部署,还计划提供配套的SDK工具,进一步降低管理复杂度。

安全机制升级:安全防护方面,新版本默认启用了全面的API认证机制,包括Admin API、Console API和Inner API。这一改变虽然增加了初始配置的工作量,但显著提升了系统的整体安全性。

三、AI时代的前瞻布局

MCP注册中心:Nacos 3.0敏锐捕捉到AI技术浪潮,创新性地支持Model Content Protocol协议,转型为MCP注册中心。这一功能突破体现在:

  • 智能服务管理:支持各类AI模型服务的注册、发现和动态管理
  • 零成本接入:现有API通过简单配置即可转换为MCP服务
  • 智能路由:新增的Nacos-MCP-Router组件能智能匹配最佳服务节点
  • 资源优化:通过信息过滤机制显著降低Token消耗

四、架构优化与功能增强

命名空间统一:简化了空命名空间与公共命名空间的处理逻辑,提升使用体验的一致性。

分布式锁支持:虽然尚处测试阶段,但这一功能有望减少对额外中间件的依赖。

智能监听机制:引入基于模式的模糊监听功能,大幅提升大规模服务管理的灵活性。

服务网格集成:原生支持xDS协议,实现与服务网格生态的无缝对接。

Kubernetes协同:通过Nacos Controller 2.0实现与K8s资源的双向同步。

Nacos3.0服务端详细安装步骤

一、JDK17安装

nacos依赖java环境运行,所以在部署nacos时先要在机器上安装好jdk,因nacos3.0最低要求jdk17以上,本次需要在服务器上安装jdk17,这里我们使用OpenJDK实现快速安装!

1、更新软件包列表

首先,更新你的包管理器的包列表:

1
sudo apt update

2、安装 OpenJDK 17

1
sudo apt install openjdk-17-jdk

3、验证安装

1
java -version

可以看到默认安装了最新版本17.0.15

二、下载Nacos3.0.0版本包

这里有两种方式:官网下载和github下载

方法一:去官网下载zip压缩包,再使用scp命令上传压缩包到Linux服务器

zip压缩包官网下载地址:https://www.nacos.io/download/nacos-server/,这里选择3.0.0版本

使用scp命令上传本地zip包到linux服务器(注意:这里要把ubuntu、ip、目录替换成你自己的服务器)

1
scp -r nacos-server-3.0.0.zip ubuntu@119.91.210.32:/home/ubuntu/nacos

我把压缩包上传到了/home/ubuntu/nacos目录下

方法二:直接在Linux服务器使用wget命令下载

切换到你的linux要下载压缩包的目录下,使用以下命令下载nacos-server-3.0.0.zip包

1
wget https://gh.llkk.cc/https://github.com/alibaba/nacos/releases/download/3.0.0/nacos-server-3.0.0.zip

nacos的github包原下载路径是https://github.com/alibaba/nacos/releases/download/3.0.0/nacos-server-3.0.0.zip,因国内服务器无法直接连接github,这里使用虾壳(https://xiake.pro/)对github地址转换下就可以直接高速下载了

三、解压Nacos发行包

使用以下命令解压zip包

1
unzip nacos-server-3.0.0.zip 

解压完后会在同层多出个nacos文件夹

四、启动Nacos服务

1、参数准备

这里先别急着使用命令去启动nacos,我们先准备些必要数据,等会在启动Nacos时会要求输入,使用以下命令生成三个随机密钥

1
2
3
4
# 生成一个32位以上的 Base64 编码随机字符串
openssl rand -base64 32
# 生成一个随机16字节的Hex字符串
openssl rand -hex 16

得到的这三个密钥值拷贝出来,先找个地方存起来,后面启动Nacos时候会用到

接下来将详细讲下这三个参数的值如何使用及注意事项

2.1、nacos.core.auth.plugin.nacos.token.secret.key

nacos.core.auth.plugin.nacos.token.secret.keyNacos 身份认证(JWT Token)的核心加密密钥,主要用于 生成和验证用户登录、API 访问的 Token。它的作用和安全影响如下:

核心作用

  1. 生成 JWT Token
    • 当用户或客户端通过用户名/密码登录 Nacos 时,服务端会用该密钥 签发 JWT Token(类似会话凭证)。
    • 后续所有请求(如注册服务、配置管理)都需要携带此 Token 进行身份校验。
  2. 验证 Token 合法性
    • 服务端收到请求时,会用相同的密钥解密 Token,验证请求是否合法(防止伪造 Token)。
  3. 影响范围
    • 所有 Nacos 的 用户登录OpenAPI 调用客户端鉴权 都依赖此密钥。

安全注意事项

  1. 必须自定义
    • 默认安装时未设置此密钥,Nacos 会强制要求配置(否则无法启动)。
    • 禁止使用示例密钥(如 VGhpc0lzTXlTdXBlclNlY3JldEtleSEhIVNvU2VjdXJl),否则会有严重安全风险。
  2. 一旦泄露的后果
    • 攻击者可伪造任意用户的 Token,完全控制 Nacos 服务(增删配置、服务注册等)。
  3. 生产环境要求
    • 密钥长度 ≥ 32 位原始字符串,并做 Base64 编码(如通过 openssl rand -base64 32 生成)。
    • 密钥生成后 严禁更改,否则所有已颁发的 Token 会立即失效(需重新登录)。

如何配置?

1. 生成密钥(Linux/Mac)

1
2
openssl rand -base64 32
# 输出示例:aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789+ab/cdefg==

2. 写入 Nacos 配置文件

修改 conf/application.properties

1
nacos.core.auth.plugin.nacos.token.secret.key=aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789+ab/cdefg==

3. 重启 Nacos

1
2
sh shutdown.sh
sh startup.sh -m standalone

常见问题

  • Q:密钥丢失怎么办?
    A:所有用户需重新登录生成新 Token,旧 Token 全部失效。
  • Q:集群环境如何配置?
    A:所有节点必须使用 相同的密钥,否则节点间无法同步认证状态。
  • Q:客户端需要配置吗?
    A:客户端只需携带 Token(由服务端颁发),无需知道密钥本身。

2.2、nacos.core.auth.server.identity.key

nacos.core.auth.server.identity.key 是 Nacos 服务身份认证的密钥,主要用于 服务端和客户端之间的安全通信(如 Nacos 集群节点间的认证)。

作用

  1. 集群节点认证在 Nacos 集群模式下,不同节点之间需要验证身份,防止非法节点加入。
  2. 客户端-服务端认证某些场景下,Nacos 客户端(如微服务)需要携带该密钥访问服务端,确保请求来自受信任的客户端。

配置方式

  • 临时启动时指定(测试用):
1
sh startup.sh -m standalone --nacos.core.auth.server.identity.key=你的Base64密钥
  • 永久配置(修改 <font style="color:rgb(36, 41, 47);">conf/application.properties</font>):
1
2
# 以下是示例值,需替换成你自己的
nacos.core.auth.server.identity.key=dGhpcyBpcyBhIHNlY3JldCBrZXkgZm9yIG5hY29zIQ==

3. 客户端配置(如果需要)

如果 Nacos 客户端(如 Spring Cloud Alibaba)需要认证,需在客户端配置相同的密钥:

1
2
3
4
5
6
7
8
spring:
cloud:
nacos:
discovery:
username: nacos
password: nacos
# 如果启用了身份认证,需配置密钥,以下是示例值,需替换成你自己的
identity-key: dGhpcyBpcyBhIHNlY3JldCBrZXkgZm9yIG5hY29zIQ==

注意事项

  1. 生产环境必须自定义密钥,不要使用默认值或示例密钥。
  2. 集群模式下所有节点必须使用相同的密钥,否则节点间无法通信。
  3. 如果只是单机测试,可以临时生成一个密钥,但正式环境务必妥善保管。

设置完成后,重启 Nacos 即可生效。

2.3、nacos.core.auth.server.identity.value

nacos.core.auth.server.identity.value 是 Nacos 服务端身份认证的值,通常与 nacos.core.auth.server.identity.key 配合使用,用于 增强 Nacos 服务端和客户端之间的安全认证

作用

  1. 身份校验
    • 当 Nacos 客户端(如微服务)访问 Nacos 服务端时,服务端会验证客户端是否携带正确的 <font style="color:#000000;">key</font><font style="color:#000000;">value</font>,确保请求来源可信。
    • Nacos 集群模式 下,节点间通信也会校验该值,防止非法节点加入集群。
  2. 防止未授权访问
    • 类似于 API 访问的 “Token” 机制,避免未授权的客户端或恶意节点访问 Nacos 服务。

配置方式

  • 临时启动时指定(测试用):
1
2
3
sh startup.sh -m standalone \
--nacos.core.auth.server.identity.key=your_key \
--nacos.core.auth.server.identity.value=your_value
  • 永久配置(修改 <font style="color:#000000;">conf/application.properties</font>):
1
2
nacos.core.auth.server.identity.key=your_key
nacos.core.auth.server.identity.value=a1b2c3d4e5f67890abcdef1234567890

客户端配置(如果需要)

如果 Nacos 客户端(如 Spring Cloud Alibaba)需要认证,需在客户端配置相同的 <font style="color:#000000;">key</font><font style="color:#000000;">value</font>

1
2
3
4
5
6
7
8
spring:
cloud:
nacos:
discovery:
username: nacos
password: nacos
identity-key: your_key # 与服务端一致
identity-value: your_value # 与服务端一致

注意事项

  1. **生产环境必须自定义 <font style="color:#000000;">key</font> 和 **<font style="color:#000000;">value</font>,不要使用默认值或示例值。
  2. **集群模式下所有节点必须使用相同的 <font style="color:#000000;">key</font> 和 **<font style="color:#000000;">value</font>,否则节点间无法通信。
  3. 客户端和服务端必须匹配,否则客户端无法注册或发现服务。
  4. 如果只是本地测试,可以临时设置,但正式环境务必妥善保管。

设置完成后,重启 Nacos 即可生效。

2、端口修改-可选

nacos3.0.0默认会占用两个端口:8080和8848,如果你机器这两个端口已经被占用了,可以进行端口修改!

编辑配置文件,这里相对路径在nacos/conf/application.properties下,根据你自己解压的目录动态调整

1
vim /home/ubuntu/nacos/nacos/conf/application.properties

找到nacos.server.main.portnacos.console.port,修改为你机器没有被占用的端口

3、切换到nacos的bin目录下

从上一步可以看到,我压缩包下载到了/home/ubuntu/nacos下,再加压完zip包,所以会有2个nacos层级,大家根据自己服务器切换到解压后的nacos/bin目录下

1
cd /home/ubuntu/nacos/nacos/bin

可以看到该目录下有快捷启动脚本

4、启动Nacos

单机模式启动(适用于测试环境)

ubuntu系统启动命令

1
bash startup.sh -m standalone

其余Linux系统启动命令

1
sh startup.sh -m standalone

执行启动命令时会要求你输入这三个参数的值,我们在第一步时候已经准备好了,直接粘贴过来就可以了

集群模式启动(适用于生产环境,必须最少3台服务才能启动集群模式)

配置cluster.conf文件,压缩包解压后默认有cluster.conf.example示例文件,拷贝一份出来到cluster.conf

1
cp cluster.conf.example cluster.conf

编辑集群配置文件

1
vim cluster.conf

这里需要3台机器以上,改成你自己机器对应的ip,默认的8848端口如果有做变更也进行相应调整

编辑配置文件修改数据库配置

1
vim ~/nacos/nacos/conf/application.properties

集群模式会使用到数据库,放开以下Mysql注释,并改成你自己mysql的连接信息!

配置文件里继续修改鉴权配置,自3.0.0版本开始,Nacos控制台默认开启访问鉴权,所以鉴权相关配置必须进行配置,这三个参数就是前面参数准备时生成的那三个

1
2
3
4
5
6
7
8
## 开启客户端访问鉴权,默认为关闭,可选
nacos.core.auth.enabled=true
## 开启控制台访问鉴权,默认为开启
nacos.core.auth.console.enabled=true
nacos.core.auth.system.type=nacos
nacos.core.auth.plugin.nacos.token.secret.key=${自定义,保证所有节点一致}
nacos.core.auth.server.identity.key=${自定义,保证所有节点一致}
nacos.core.auth.server.identity.value=${自定义,保证所有节点一致}

接下来,就是启动Nacos了

1
2
3
4
5
# Linux/Unix/Mac
sh startup.sh

# Ubuntu系统使用以下命令
bash startup.sh

五、查看启动结果

1、切到启动日志文件夹

1
/home/ubuntu/nacos/nacos/logs/

2、查看startup.log

使用以下命令查看日志启动结果

1
tail -100f startup.log

如果启动失败了日志里面会详细打印描述

3、修改配置文件

编辑配置文件,这里前面路径改成你自己服务器的,配置文件相对路径在nacos/conf/application.properties

1
vim /home/ubuntu/nacos/nacos/conf/application.properties

检查这三个值,是否都有正确填充,没有则重新编辑保存下

4、重启Nacos

单机模式

1
2
3
4
5
6
7
8
9
10
11
# 进入 Nacos 的 bin 目录
cd ~/nacos/bin

# 先停止服务
sh shutdown.sh

# 再启动服务(单机模式)
sh startup.sh -m standalone

# ubuntu系统使用以下命令启动
bash startup.sh -m standalone

集群模式(cluster)重启

1
2
3
4
5
6
7
8
9
10
11
# 进入每个节点的 bin 目录
cd ~/nacos/bin

# 逐个节点执行停止(每个节点都需要操作)
sh shutdown.sh

# 逐个节点启动(所有节点启动完成才算集群恢复)
sh startup.sh -m cluster

# ubuntu系统使用以下命令启动
bash startup.sh -m cluster

注意事项

  1. 集群模式:重启时要确保所有节点按顺序操作,避免集群脑裂。
  2. 数据安全:如果启用了鉴权,重启后客户端可能需要重新登录获取 Token。
  3. 依赖服务:如果 Nacos 依赖 MySQL 等数据库,确保数据库服务已正常运行。

5、成功启动

startup.log成功启动页面如下

六、打开Linux服务器端口防火墙

七、登录Nacos控制台页面

进到你的云服务器控制台页面:http://{云服务器公网ip}:8080/index.html

1、初始化密码

首次登录控制台输入用户名密码会自动进行初始化

2、使用刚初始化的账号密码登录

可以看到已成功登录上了,接下来就可以进行相关配置处理了

八、配置数据库(单机模式可选配)

1、配置Mysql数据库

进到你自己的mysql数据库,创建完库后,在库下初始化以下表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
/******************************************/
/* 表名称 = config_info */
/******************************************/
CREATE TABLE `config_info` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) DEFAULT NULL COMMENT 'group_id',
`content` longtext NOT NULL COMMENT 'content',
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`src_user` text COMMENT 'source user',
`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
`c_desc` varchar(256) DEFAULT NULL COMMENT 'configuration description',
`c_use` varchar(64) DEFAULT NULL COMMENT 'configuration usage',
`effect` varchar(64) DEFAULT NULL COMMENT '配置生效的描述',
`type` varchar(64) DEFAULT NULL COMMENT '配置的类型',
`c_schema` text COMMENT '配置的模式',
`encrypted_data_key` varchar(1024) NOT NULL DEFAULT '' COMMENT '密钥',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`, `group_id`, `tenant_id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_bin COMMENT = 'config_info';
/******************************************/
/* 表名称 = config_info since 2.5.0 */
/******************************************/
CREATE TABLE `config_info_gray` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
`content` longtext NOT NULL COMMENT 'content',
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
`src_user` text COMMENT 'src_user',
`src_ip` varchar(100) DEFAULT NULL COMMENT 'src_ip',
`gmt_create` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'gmt_create',
`gmt_modified` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'gmt_modified',
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
`gray_name` varchar(128) NOT NULL COMMENT 'gray_name',
`gray_rule` text NOT NULL COMMENT 'gray_rule',
`encrypted_data_key` varchar(256) NOT NULL DEFAULT '' COMMENT 'encrypted_data_key',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfogray_datagrouptenantgray` (`data_id`, `group_id`, `tenant_id`, `gray_name`),
KEY `idx_dataid_gmt_modified` (`data_id`, `gmt_modified`),
KEY `idx_gmt_modified` (`gmt_modified`)
) ENGINE = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8 COMMENT = 'config_info_gray';
/******************************************/
/* 表名称 = config_tags_relation */
/******************************************/
CREATE TABLE `config_tags_relation` (
`id` bigint(20) NOT NULL COMMENT 'id',
`tag_name` varchar(128) NOT NULL COMMENT 'tag_name',
`tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
`nid` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'nid, 自增长标识',
PRIMARY KEY (`nid`),
UNIQUE KEY `uk_configtagrelation_configidtag` (`id`, `tag_name`, `tag_type`),
KEY `idx_tenant_id` (`tenant_id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_bin COMMENT = 'config_tag_relation';
/******************************************/
/* 表名称 = group_capacity */
/******************************************/
CREATE TABLE `group_capacity` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群',
`quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
`usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
`max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
`max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值',
`max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
`max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_group_id` (`group_id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_bin COMMENT = '集群、各Group容量信息表';
/******************************************/
/* 表名称 = his_config_info */
/******************************************/
CREATE TABLE `his_config_info` (
`id` bigint(20) unsigned NOT NULL COMMENT 'id',
`nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'nid, 自增标识',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
`content` longtext NOT NULL COMMENT 'content',
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`src_user` text COMMENT 'source user',
`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
`op_type` char(10) DEFAULT NULL COMMENT 'operation type',
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
`encrypted_data_key` varchar(1024) NOT NULL DEFAULT '' COMMENT '密钥',
`publish_type` varchar(50) DEFAULT 'formal' COMMENT 'publish type gray or formal',
`gray_name` varchar(50) DEFAULT NULL COMMENT 'gray name',
`ext_info` longtext DEFAULT NULL COMMENT 'ext info',
PRIMARY KEY (`nid`),
KEY `idx_gmt_create` (`gmt_create`),
KEY `idx_gmt_modified` (`gmt_modified`),
KEY `idx_did` (`data_id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_bin COMMENT = '多租户改造';
/******************************************/
/* 表名称 = tenant_capacity */
/******************************************/
CREATE TABLE `tenant_capacity` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID',
`quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
`usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
`max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
`max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数',
`max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
`max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tenant_id` (`tenant_id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_bin COMMENT = '租户容量信息表';
CREATE TABLE `tenant_info` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`kp` varchar(128) NOT NULL COMMENT 'kp',
`tenant_id` varchar(128) default '' COMMENT 'tenant_id',
`tenant_name` varchar(128) default '' COMMENT 'tenant_name',
`tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc',
`create_source` varchar(32) DEFAULT NULL COMMENT 'create_source',
`gmt_create` bigint(20) NOT NULL COMMENT '创建时间',
`gmt_modified` bigint(20) NOT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`, `tenant_id`),
KEY `idx_tenant_id` (`tenant_id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_bin COMMENT = 'tenant_info';
CREATE TABLE `users` (
`username` varchar(50) NOT NULL PRIMARY KEY COMMENT 'username',
`password` varchar(500) NOT NULL COMMENT 'password',
`enabled` boolean NOT NULL COMMENT 'enabled'
);
CREATE TABLE `roles` (
`username` varchar(50) NOT NULL COMMENT 'username',
`role` varchar(50) NOT NULL COMMENT 'role',
UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE
);
CREATE TABLE `permissions` (
`role` varchar(50) NOT NULL COMMENT 'role',
`resource` varchar(128) NOT NULL COMMENT 'resource',
`action` varchar(8) NOT NULL COMMENT 'action',
UNIQUE INDEX `uk_role_permission` (`role`, `resource`, `action`) USING BTREE
);

这些初始化表信息默认存放在nacos/conf/mysql-schema.sql下

2、切换使用Mysql存储配置信息

单机模式可以选择配置,不配的话所有配置文件会默认存储到本地服务器文件!

集群模式部署则是必配,全部nacos的配置文件会存储在数据库内!

1
2
# 修改数据库配置文件
vim ~/nacos/nacos/conf/application.properties

打开以下配置参数,值改成你上面的Mysql数据库连接信息

Nacos3.0客户端接入步骤

官网详细接入文档:https://www.nacos.io/docs/v3.0/ecology/use-nacos-with-spring-boot3/

SpringBoot工程添加依赖

1、pom.xml文件添加依赖配置

1
2
3
4
5
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-alibaba-nacos-config</artifactId>
<version>2023.0.3.2</version>
</dependency>

2、<font style="color:rgb(53, 56, 65);background-color:rgb(237, 238, 243);">application.properties</font> 中配置 Nacos server 的地址

1
2
3
spring.application.name=springboot3x
spring.config.import[0]=nacos:springboot3x.properties?group=DEFAULT_GROUP
spring.nacos.config.server-addr=127.0.0.1:8848

SpringCloud工程添加依赖

1、pom.xml文件添加依赖配置

1
2
3
4
5
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2023.0.3.2</version>
</dependency>

2、<font style="color:rgb(53, 56, 65);background-color:rgb(237, 238, 243);">application.properties</font> 中配置 Nacos server 的地址

1
2
3
spring.application.name=springclouddemo2023x
spring.config.import[0]=nacos:springclouddemo2023x.properties?group=DEFAULT_GROUP
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

版本映射关系

参考官网:https://sca.aliyun.com/docs/2023/overview/version-explain/

结语

Nacos 3.0的发布标志着云原生服务治理进入智能化新阶段。无论是传统微服务架构还是新兴AI应用场景,这一版本都提供了强有力的支持。建议开发团队在升级前详细评估兼容性需求,特别是环境依赖和认证配置方面的变更。随着AI技术的快速发展,Nacos在智能服务治理领域的潜力值得持续关注。


nacos3.0单机及集群模式安装详细教程
http://example.com/2025/05/21/后端技术互联/nacos3.0单机及集群模式安装详细教程/
作者
技术Z先生
发布于
2025年5月21日
许可协议