news 2026/10/8 6:59:34

CentOS7 部署 Nacos3.x 集群实战:从注册中心到 AI 管理中心

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CentOS7 部署 Nacos3.x 集群实战:从注册中心到 AI 管理中心

本文基于 Nacos 3.x 版本,完整讲解 Nacos 核心能力、适用场景、集群原理,并提供一套可落地的 5 节点生产集群部署实操,覆盖传统微服务治理与新增的 AI Registry(AI 资源管理)能力。 环境说明:CentOS7,JDK17,Nacos 3.0.3,MySQL8.0,5 台内网服务器

目录

  1. Nacos 是什么?三大核心能力
  2. Nacos 3.x 新特性:AI 管理中心(AI Registry)
  3. 什么时候适合引入 Nacos
  4. 集群规模选型建议
  5. Nacos 集群底层原理:Raft + Distro 混合一致性模型
  6. 服务器角色规划
  7. 分步部署 Nacos 5 节点集群 7.1 部署 MySQL8.0(192.168.88.115) 7.2 创建 Nacos 数据库与数据库账号 7.3 所有节点安装 JDK17 + Nacos 服务包 7.4 初始化 Nacos 数据库表结构 7.5 全局配置 application.properties 与集群文件 cluster.conf 7.6 配置 Systemd 实现 Nacos 开机自启(所有节点) 7.7 Nginx 负载均衡配置(192.168.88.111)
  8. 部署验证
  9. 总结

1. Nacos 是什么?三大核心能力

Nacos 全称 Dynamic Naming and Configuration Service,是阿里开源的动态命名与配置服务平台。 早期定位:服务注册中心 + 配置中心 + 微服务管理平台。 在 Nacos 3.x 版本中,新增AI 管理中心(AI Registry),将 AI 体系中的各类资源纳入统一治理。

简单概括 Nacos 解决的 3 大类核心问题:

  1. 服务去哪找?(服务注册发现)微服务实例启动后主动注册到 Nacos;消费方从 Nacos 拉取服务实例地址、端口、健康状态,实现服务自动寻址。实例宕机时,Nacos 自动剔除不健康节点,不再转发流量。
  2. 配置怎么管?(配置中心)数据库连接地址、业务开关、超时阈值、灰度策略等配置集中托管。配置变更实时推送客户端,无需打包、重启应用,同时支持版本管理与一键回滚。
  3. AI 资源怎么治理?(AI Registry,3.x 新增)在 Agent 应用体系中,Skill、Agent、MCP Server、Prompt 模板、AgentSpec 等 AI 组件,同样需要注册、版本管控、权限隔离与操作审计,Nacos 3.x 将 AI 资源作为一等公民统一管理。
能力作用典型场景
服务注册发现实例自动注册、服务自动发现、健康状态感知SpringCloud/Dubbo 微服务间远程调用
配置管理集中配置存储、动态推送、版本回滚、配置审计业务开关、限流阈值、第三方接口地址变更
健康检查定时探测,自动下线不健康实例节点宕机、进程异常时流量自动摘除
多环境隔离Namespace + Group 两层隔离dev/test/pre/prod 多环境配置隔离
灰度与流量路由实例权重、分组发布、流量染色服务灰度发布、按比例切流
AI 管理中心(3.x)AI 资源注册、版本、鉴权、审计Agent、Skill、Prompt、MCP Server 统一治理

2. Nacos 3.x 新特性:AI 管理中心(AI Registry)

AI 管理中心是 Nacos3.x 最重要的升级。 它把 AI 资源接入 Nacos 控制台,复用 Nacos 成熟能力:

  • Namespace 环境隔离:开发、预发、生产的 Agent 资源相互隔离
  • 资源版本管理:Prompt、Skill 多版本留存,支持回滚
  • 权限控制:不同账号对 AI 资源的读写权限管控
  • 操作审计:记录 AI 资源新增、修改、删除操作

适用场景:基于 Spring AI Alibaba 搭建 AI Agent 应用,把 Agent、MCP 服务注册进 Nacos,实现 AI 组件的服务化治理。

3. 什么时候适合引入 Nacos

✅不建议上 Nacos:单体应用,配置项极少,无实例动态扩缩容需求,服务数量很少。

✅强烈推荐引入 Nacos:

  1. 微服务数量较多,人工维护 IP 端口成本高,容易出错;
  2. 配置变更频繁,需要动态下发、版本回滚;
  3. 多环境复杂,开发 / 测试 / 生产配置容易混淆;
  4. 服务实例会动态上下线,需要自动感知实例健康状态;
  5. 技术栈为 Spring Cloud、Dubbo、Spring AI Alibaba,原生集成 Nacos;
  6. 搭建 AI Agent 平台,需要统一管理 MCP、Agent、Prompt 资源。

4. 集群规模选型建议

集群规模推荐部署方式说明
本地开发单机模式内置 Derby 数据库,仅本地调试
测试环境单机 / 小集群建议外接 MySQL,便于模拟生产
生产环境3 节点集群起步推荐 3、5 奇数节点,满足高可用
大规模生产5 节点及以上微服务多、QPS 高、配置变更频繁

生产硬性规范:

  1. 节点优先奇数,不要使用 2 节点集群(无法完成 Raft 过半选举)
  2. 数据库必须使用独立外部 MySQL,禁用内置 Derby
  3. 客户端连接 Nacos 统一使用 SLB/Nginx 域名,禁止直连单个节点 IP
  4. 开放端口:8848(主端口)、7848(Raft)、9848/9849(gRPC 通信)
  5. 生产环境必须开启鉴权,自定义 token 密钥,不要使用默认密钥

5. Nacos 集群底层原理:Raft + Distro 混合一致性模型

Nacos 集群并不是简单的负载均衡,它针对两类数据采用两套不同一致性协议,属于CP/AP 混合模型:

  1. 配置数据:Raft 协议(偏向 CP)配置数据一致性优先级最高。集群内部选举 Leader,写请求需要集群过半节点确认才持久化生效,保证配置在集群内强一致。
  2. 临时服务实例:Distro 协议(自研,偏向 AP)服务注册发现优先保证可用性。Distro 保证数据最终一致性,依靠心跳、数据补偿同步实例信息,实例上下线感知更快,适合微服务动态扩缩容场景。

所有持久化数据最终存入外部 MySQL;Nacos 各节点启动时加载数据库数据到本地内存缓存,提升查询性能。

一句话总结:配置偏 CP,临时服务发现偏 AP。 Nacos 本质是微服务与 AI 应用的控制平面,统一承载服务、配置、AI 资源治理。 标准架构链路:客户端 → Nginx/SLB → Nacos集群 → MySQL扩展能力:可叠加监控告警、配置审计、灰度发布、AI Registry,升级为企业级微服务 + AI 基础设施平台。

6. 服务器角色规划

本次搭建 5 节点 Nacos 集群,环境为内网:

物理服务器 IP节点名部署角色说明
192.168.88.111nacos-1Nginx 负载均衡入口 + Nacos 节点 1
192.168.88.112nacos-2Nacos 节点 2
192.168.88.113nacos-3Nacos 节点 3
192.168.88.114nacos-4Nacos 节点 4
192.168.88.115nacos-5MySQL8.0 数据库 + Nacos 节点 5

注意:数据库单独部署在 115,所有 Nacos 节点共用这一套 MySQL。

7. 分步部署 Nacos 5 节点集群

所有服务器关闭防火墙或放行 8848、7848、9848、9849、3306 端口;关闭 SELinux。

7.1 部署 MySQL8.0(仅在 192.168.88.115 执行)

# 1. 添加 MySQL8.0 官方yum源并安装 wget -i -c http://dev.mysql.com/get/mysql80-community-release-el7-10.noarch.rpm yum -y install mysql80-community-release-el7-10.noarch.rpm yum -y install mysql-community-server # 2. 启动MySQL并设置开机自启 systemctl start mysqld systemctl enable mysqld # 3. 获取MySQL初始临时密码 TEMP_PASS=$(grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}') echo "MySQL 初始密码为:$TEMP_PASS" # 4. 使用初始密码登录,修改root强密码(替换为你自己的密码) mysql -uroot -p"$TEMP_PASS" --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourStrongRootPass!123';"

7.2 创建 Nacos 数据库与数据库账号(115 执行)

登录 MySQL:

mysql -uroot -p

执行 SQL 脚本:

-- 创建Nacos专用数据库,字符集utf8mb4 CREATE DATABASE nacos_config DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 创建nacos访问账号,允许内网所有IP访问 CREATE USER 'nacos'@'%' IDENTIFIED BY 'NacosPass@2026!'; GRANT ALL PRIVILEGES ON nacos_config.* TO 'nacos'@'%'; FLUSH PRIVILEGES; EXIT;

7.3 所有节点安装 JDK17 + Nacos 服务包

Nacos3.x 硬性依赖 JDK17,5 台机器全部执行:

# 1. 下载OpenJDK17 wget https://mirrors.huaweicloud.com/openjdk/17/openjdk-17_linux-x64_bin.tar.gz # 解压 tar -zxvf openjdk-17_linux-x64_bin.tar.gz # 移动目录 mv jdk-17* /opt/jdk-17 # 写入环境变量 cat >> /etc/profile << 'EOF' export JAVA_HOME=/opt/jdk-17 export PATH=$JAVA_HOME/bin:$PATH EOF # 生效环境变量 source /etc/profile # 校验版本 java -version

安装 Nacos 3.0.3

Nacos下载地址:发布历史 | Nacos 官网

​

# 创建安装目录 mkdir -p /opt/nacos cd /opt/nacos # 上传 nacos-server-3.0.3.zip 到当前目录后解压 unzip nacos-server-3.0.3.zip

7.4 初始化 Nacos 数据库表结构(仅 115 执行)

将 Nacos 内置 mysql-schema.sql 导入刚刚创建的 nacos_config 库

mysql -u nacos -p'你的Nacos数据库密码' nacos_config < /opt/nacos/nacos/conf/mysql-schema.sql

7.5 全局配置 application.properties 与 cluster.conf(5 台全部执行)

7.5.1 application.properties配置
# 备份原有配置 mv /opt/nacos/nacos/conf/application.properties /opt/nacos/nacos/conf/application.properties-bak # 新建配置文件 vim /opt/nacos/nacos/conf/application.properties

写入配置:

### 数据库配置 spring.sql.init.platform=mysql db.num=1 db.url.0=jdbc:mysql://192.168.88.115:3306/nacos_config? characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&serverTimezone=Asia/Shanghai db.user=nacos db.password=NacosPass@2026! ### 安全鉴权(集群所有节点必须完全一致!) nacos.core.auth.enabled=true nacos.core.auth.system.type=nacos # 务必替换为自定义密钥,不要直接使用示例密钥上线生产 nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789 nacos.core.auth.server.identity.key=serverIdentity nacos.core.auth.server.identity.value=security
7.5.2 cluster.conf 集群配置
# 复制集群示例文件 cp /opt/nacos/nacos/conf/cluster.conf.example /opt/nacos/nacos/conf/cluster.conf vim /opt/nacos/nacos/conf/cluster.conf

写入 5 节点地址,删除原有注释示例:

192.168.88.111:8848 192.168.88.112:8848 192.168.88.113:8848 192.168.88.114:8848 192.168.88.115:8848

7.6 配置 Systemd 实现 Nacos 开机自启(5 台全部执行)

vim /etc/systemd/system/nacos.service

写入内容:

[Unit] Description=Nacos Cluster Service After=network.target [Service] Type=forking Environment="JAVA_HOME=/opt/jdk-17" ExecStart=/opt/nacos/nacos/bin/startup.sh -m cluster ExecReload=/opt/nacos/nacos/bin/shutdown.sh ExecStop=/opt/nacos/nacos/bin/shutdown.sh Restart=always RestartSec=5 [Install] WantedBy=multi-user.target

重载 systemd 并启动:

systemctl daemon-reload systemctl enable --now nacos.service

提示:Nacos 集群启动较慢,等待 1~2 分钟;可以用netstat -tlnp |grep 8848检查端口监听状态。

7.7 Nginx 负载均衡配置(仅 192.168.88.111 执行)

# CentOS7安装epel源和Nginx yum install -y epel-release yum install -y nginx # 启动并开机自启 systemctl start nginx systemctl enable nginx

新建 nacos 负载均衡配置

vim /etc/nginx/conf.d/nacos.conf

写入配置

upstream nacos_http { server 192.168.88.111:8848 weight=1; server 192.168.88.112:8848 weight=1; server 192.168.88.113:8848 weight=1; server 192.168.88.114:8848 weight=1; server 192.168.88.115:8848 weight=1; } server { listen 80; server_name localhost; location /nacos/ { proxy_pass http://nacos_http; 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; } }

校验 Nginx 配置,重载服务:

nginx -t && nginx -s reload

8. 部署验证

访问 Nginx 入口地址:http://192.168.88.111:8080

登录成功即代表集群部署完成;登录后可以切换命名空间,测试配置发布、服务注册、AI 资源管理面板。

9. 总结

Nacos 早已不只是传统微服务的注册配置中心。Nacos3.x 引入 AI Registry 之后,把 Agent、Skill、Prompt、MCP Server 等 AI 组件纳入统一治理平台,一套平台同时支撑微服务和 AI 应用。

本文搭建 5 节点 Nacos 高可用集群,从原理到完整部署流程,适用于企业预发、小规模生产环境。部署完成后,可以接入 Spring Cloud/Dubbo 微服务,也可以对接 Spring AI Alibaba,统一管理传统服务与 AI 资源。 集群架构采用 Nginx 做负载均衡,所有节点共享 MySQL 持久层,Raft+Distro 混合协议保证可用性与一致性。

在落地过程中,优先做好鉴权、备份、网络安全与监控;AI 资源变更建议严格走权限与审计流程。如果部署遇到问题,欢迎在评论区交流。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/8 6:57:46

WorkBuddy 能生图、能生视频,只是很多人还没点开那个入口

朋友&#xff1a;"WorkBuddy 不就是另一个 DeepSeek 吗&#xff1f;写写文案、改改文档还行。"我&#xff1a;"你上次做电商详情页那八张图&#xff0c;是不是还在 Midjourney 出图、剪映剪视频、稿定做海报&#xff0c;三个工具来回切&#xff1f;"朋友&a…

作者头像 李华
网站建设 2026/10/8 6:57:22

阿里Java面试参考指南:程序员金九银十突击必备!

谈到Java面试&#xff0c;相信大家第一时间脑子里想到的词肯定是金三银四&#xff0c;金九银十。好像大家的潜意识里做Java开发的都得在这个时候才能出去面试&#xff0c;跳槽成功率才高&#xff01;但LZ不这么认为&#xff0c;LZ觉得我们做技术的一生中会遇到很多大大小小的面…

作者头像 李华
网站建设 2026/10/8 6:56:50

通信协议中的超帧:从SDH S1字节到LTE H-SFN的周期嵌套设计

做传输和无线接入的工程师&#xff0c;对 frame 这个词再熟悉不过。但第一次在 SDH 分析仪上看到 Hyperframe 这个字段时&#xff0c;不少人会愣一下&#xff1a;帧之上有多帧&#xff0c;多帧之上还有个超帧&#xff0c;这层层套娃到底图什么&#xff1f;后来在 LTE 的 eDRX 参…

作者头像 李华
网站建设 2026/10/8 6:56:38

ponytail技能框架实战:统一脚本、配置与排错经验

经常有朋友问我&#xff1a;插件装了一堆&#xff0c;工作流反而更乱了&#xff0c;怎么办&#xff1f;我最近一年都在用ponytail这个工具&#xff0c;它最初只是团队内部一个不起眼的命令行小插件&#xff0c;但磨合下来&#xff0c;居然把之前各自为政的脚本和配置收敛了一大…

作者头像 李华