> 技术文档 > Nacos3.0重磅来袭!全面拥抱AI,单机及集群模式详细搭建教程!

Nacos3.0重磅来袭!全面拥抱AI,单机及集群模式详细搭建教程!

之前和大家分享过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、更新软件包列表

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

sudo apt update

2、安装 OpenJDK 17

sudo apt install openjdk-17-jdk

3、验证安装

java -version

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

二、下载Nacos3.0.0版本包

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

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

zip压缩包官网下载地址:Nacos Server 下载 | Nacos 官网,这里选择3.0.0版本

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

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包

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,这里使用虾壳(虾壳 - GitHub下载加速网站 GitHub Proxy加速器)对github地址转换下就可以直接高速下载了

三、解压Nacos发行包

使用以下命令解压zip包

unzip nacos-server-3.0.0.zip 

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

四、启动Nacos服务

1、参数准备

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

# 生成一个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)

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

2. 写入 Nacos 配置文件

修改 conf/application.properties

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

3. 重启 Nacos

sh shutdown.shsh 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 客户端(如微服务)需要携带该密钥访问服务端,确保请求来自受信任的客户端。

配置方式

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

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

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

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 服务端时,服务端会验证客户端是否携带正确的 keyvalue,确保请求来源可信。
    • Nacos 集群模式 下,节点间通信也会校验该值,防止非法节点加入集群。
  2. 防止未授权访问
    • 类似于 API 访问的 \"Token\" 机制,避免未授权的客户端或恶意节点访问 Nacos 服务。

配置方式

  • 临时启动时指定(测试用):
sh startup.sh -m standalone \\  --nacos.core.auth.server.identity.key=your_key \\  --nacos.core.auth.server.identity.value=your_value
  • 永久配置(修改 conf/application.properties):
nacos.core.auth.server.identity.key=your_keynacos.core.auth.server.identity.value=a1b2c3d4e5f67890abcdef1234567890

客户端配置(如果需要)

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

spring:  cloud:    nacos:      discovery:        username: nacos        password: nacos        identity-key: your_key       # 与服务端一致        identity-value: your_value   # 与服务端一致

注意事项

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

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

2、端口修改-可选

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

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

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

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

3、切换到nacos的bin目录下

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

cd /home/ubuntu/nacos/nacos/bin

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

4、启动Nacos

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

ubuntu系统启动命令

bash startup.sh -m standalone

其余Linux系统启动命令

sh startup.sh -m standalone

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

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

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

cp cluster.conf.example cluster.conf

编辑集群配置文件

vim cluster.conf

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

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

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

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

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

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

接下来,就是启动Nacos了

# Linux/Unix/Macsh startup.sh# Ubuntu系统使用以下命令bash startup.sh

五、查看启动结果

1、切到启动日志文件夹

/home/ubuntu/nacos/nacos/logs/

2、查看startup.log

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

tail -100f startup.log

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

3、修改配置文件

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

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

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

4、重启Nacos

单机模式

# 进入 Nacos 的 bin 目录cd ~/nacos/bin# 先停止服务sh shutdown.sh# 再启动服务(单机模式)sh startup.sh -m standalone# ubuntu系统使用以下命令启动bash startup.sh -m standalone

集群模式(cluster)重启

# 进入每个节点的 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数据库,创建完库后,在库下初始化以下表

/******************************************//*   表名称 = 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的配置文件会存储在数据库内!

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

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

Nacos3.0客户端接入步骤

官网详细接入文档:Nacos 融合 Spring Boot3,成为注册配置中心 | Nacos 官网

SpringBoot工程添加依赖

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

    com.alibaba.cloud    spring-alibaba-nacos-config    2023.0.3.2

2、在 application.properties 中配置 Nacos server 的地址

spring.application.name=springboot3xspring.config.import[0]=nacos:springboot3x.properties?group=DEFAULT_GROUPspring.nacos.config.server-addr=127.0.0.1:8848

SpringCloud工程添加依赖

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

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

2、在 application.properties 中配置 Nacos server 的地址

spring.application.name=springclouddemo2023xspring.config.import[0]=nacos:springclouddemo2023x.properties?group=DEFAULT_GROUPspring.cloud.nacos.config.server-addr=127.0.0.1:8848

版本映射关系

参考官网:版本发布说明-阿里云Spring Cloud Alibaba官网

结语

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