一、📌 Nacos 集群部署概述
✅ 什么是 Nacos 集群?
Nacos 集群 = 多个 Nacos 节点 + MySQL 数据库,实现高可用配置中心与服务注册发现。
✅ 为什么要用集群?
场景 单机 集群 本地开发 ✅ ❌ 测试、生产环境 ❌ ✅ 高可用 ❌ ✅ 多实例注册发现 ❌ ✅
二、📁 准备工作
✅ 1. 安装包准备
从官网下载 Nacos 二进制包:https://github.com/alibaba/nacos/releases
示例版本:
nacos-server-2.3.0.tar.gz
bashwget https://github.com/alibaba/nacos/releases/download/2.3.0/nacos-server-2.3.0.tar.gz解压到指定目录:
bashtar -zxvf nacos-server-2.3.0.tar.gz cd nacos✅ 2. 集群节点机器准备
假设有 3 台服务器,分别为:
节点名 IP 端口 node1 192.168.10.101 8848 node2 192.168.10.102 8848 node3 192.168.10.103 8848 本地也可以通过启动多个端口模拟(不同进程、不同端口、不同 data 和 logs)
三、🧾 配置 MySQL 数据库
✅ 1. 安装 MySQL 并创建数据库
建议版本 ≥ 5.7(支持 utf8mb4)
sqlCREATE DATABASE nacos_config CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;✅ 2. 执行初始化 SQL 脚本
在
conf/nacos-mysql.sql中找到并执行:文件名称也可能为:mysql-schema.sql(是早期版本(Nacos 1.x)中常用的数据库初始化脚本名称)
bashmysql -u root -p nacos_config < conf/nacos-mysql.sql这个脚本会创建
config_info等 Nacos 所需表结构。
四、🧰 修改配置文件
✅ 1. 修改
conf/application.properties(或创建自定义)
php# 启用 MySQL spring.datasource.platform=mysql # MySQL 配置(每个节点一样) db.num=1 db.url.0=jdbc:mysql://192.168.10.100:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=root db.password=123456 # Nacos 集群节点名称(用于日志标识) server.servlet.contextPath=/nacos✅ 2. 创建集群配置文件
conf/cluster.conf
bash# 每一行一个节点 IP:port,3 台 192.168.10.101:8848 192.168.10.102:8848 192.168.10.103:8848✅ 3. 修改每台机器的端口号(如果模拟本地)
bash# conf/application.properties server.port=8848 # node1 # 其他节点改为 8849、8850 等
五、🚀 启动集群节点
每台机器分别执行:
bashsh startup.sh -m cluster或后台运行:
bashnohup sh startup.sh -m cluster > logs/start.out 2>&1 &
六、✅ 验证集群状态
访问任一节点 Web 控制台:
bashhttp://192.168.10.101:8848/nacos默认账号密码:
sql用户名:admin 密码:nacos
七、🧩 配置集群负载均衡(可选)
建议使用 Nginx 做 Nacos 入口:
bashupstream nacos_cluster { server 192.168.10.101:8848; server 192.168.10.102:8848; server 192.168.10.103:8848; } server { listen 8848; location / { proxy_pass http://nacos_cluster; } }
八、💡 常见问题排查
问题 解决方式 页面打不开,提示连接超时 检查防火墙、端口是否监听(netstat) 启动失败,MySQL 报错 检查数据库权限、密码、初始化 SQL 是否成功 多节点注册不一致 确保所有节点配置连接的是同一个数据库 修改配置后不同节点数据不一致 检查数据库是否同步,或配置未刷新
九、🌐 Nacos 集群+持久化 配置建议
配置项 推荐配置 数据库 使用 MySQL(非嵌入式) 集群节点 建议 3 个或以上,奇数 数据隔离 使用 namespace 做环境隔离 权限安全 开启用户鉴权(开启控制台登录) 集群发现 配合 Nginx 或 DNS 做入口
✅ 十、配置客户端连接集群
phpspring: cloud: nacos: discovery: server-addr: 192.168.10.101:8848,192.168.10.102:8848,192.168.10.103:8848 config: server-addr: 192.168.10.101:8848,192.168.10.102:8848,192.168.10.103:8848
✅ 总结流程图
bash[部署机器准备] ➜ [配置 MySQL] ➜ [执行 SQL 脚本] ➜ [修改 application.properties] ➜ [配置 cluster.conf] ➜ [每个节点启动 cluster 模式] ➜ [验证控制台 + 配置同步] ➜ [可选 Nginx 统一入口]
分布式微服务--Nacos 集群部署
你我约定有三2025-08-07 15:59
相关推荐
稚辉君.MCA_P8_Java8 小时前
DeepSeek 插入排序摇滚侠8 小时前
2025最新 SpringCloud 教程,从单体到集群架构,笔记02卓码软件测评8 小时前
第三方软件测评机构:【Gatling与JMeter的架构对比:异步与非阻塞I/O模型如何实现更高并发】9***Y4810 小时前
前端微服务python零基础入门小白12 小时前
【万字长文】大模型应用开发:意图路由与查询重写设计模式(从入门到精通)CloudWeGo13 小时前
「半空」富脚手架模式:字节 Go2Rust 工程落地豆奶特浓613 小时前
Java面试模拟:当搞笑程序员谢飞机遇到电商秒杀与AIGC客服场景MarvinZhang13 小时前
LeanSpec:一个轻量级的 SDD 框架每天进步一点_JL13 小时前
事务与消息中间件:分布式系统中的可见性边界问题