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压缩包官网下载地址:
https://www.nacos.io/download/nacos-server/,这里选择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,这里使用虾壳(https://xiake.pro/)对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.key 是
Nacos 身份认证(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.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 客户端(如微服务)需要携带该密钥访问服务端,确保请求来自受信任的客户端。

配置方式

  • 临时启动时指定(测试用):
sh startup.sh -m standalone --nacos.core.auth.server.identity.key=你的Base64密钥
  • 永久配置(修改 <font style="color:rgb(36, 41, 47);">conf/application.properties</font>):
# 以下是示例值,需替换成你自己的
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 服务端时,服务端会验证客户端是否携带正确的 <font style="color:#000000;">key</font><font style="color:#000000;">value</font>,确保请求来源可信。 在 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
  • 永久配置(修改 <font style="color:#000000;">conf/application.properties</font>):
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>

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下,根据你自己解压的目录动态调整

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目录下

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=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了

# Linux/Unix/Mac
sh 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客户端接入步骤

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

SpringBoot工程添加依赖

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

<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 的地址

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文件添加依赖配置

<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 的地址

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在智能服务治理领域的潜力值得持续关注。

原文链接:,转发请注明来源!