分布式微服务--Nacos 集群部署
一、📌 Nacos 集群部署概述
✅ 什么是 Nacos 集群?
Nacos 集群 = 多个 Nacos 节点 + MySQL 数据库,实现高可用配置中心与服务注册发现。
✅ 为什么要用集群?
场景 单机 集群 本地开发 ✅ ❌ 测试、生产环境 ❌ ✅ 高可用 ❌ ✅ 多实例注册发现 ❌ ✅
二、📁 准备工作
✅ 1. 安装包准备
从官网下载 Nacos 二进制包:https://github.com/alibaba/nacos/releases
示例版本:
nacos-server-2.3.0.tar.gz
wget https://github.com/alibaba/nacos/releases/download/2.3.0/nacos-server-2.3.0.tar.gz
解压到指定目录:
tar -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)
CREATE DATABASE nacos_config CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
✅ 2. 执行初始化 SQL 脚本
在
conf/nacos-mysql.sql
中找到并执行:文件名称也可能为:mysql-schema.sql(是早期版本(Nacos 1.x)中常用的数据库初始化脚本名称)
mysql -u root -p nacos_config < conf/nacos-mysql.sql
这个脚本会创建
config_info
等 Nacos 所需表结构。
四、🧰 修改配置文件
✅ 1. 修改
conf/application.properties
(或创建自定义)# 启用 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
# 每一行一个节点 IP:port,3 台 192.168.10.101:8848 192.168.10.102:8848 192.168.10.103:8848
✅ 3. 修改每台机器的端口号(如果模拟本地)
# conf/application.properties server.port=8848 # node1 # 其他节点改为 8849、8850 等
五、🚀 启动集群节点
每台机器分别执行:
sh startup.sh -m cluster
或后台运行:
nohup sh startup.sh -m cluster > logs/start.out 2>&1 &
六、✅ 验证集群状态
访问任一节点 Web 控制台:
http://192.168.10.101:8848/nacos
默认账号密码:
用户名:admin 密码:nacos
七、🧩 配置集群负载均衡(可选)
建议使用 Nginx 做 Nacos 入口:
upstream 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 做入口
✅ 十、配置客户端连接集群
spring:cloud:nacos:discovery:server-addr: 192.168.10.101:8848,192.168.10.102:8848,192.168.10.103:8848config:server-addr: 192.168.10.101:8848,192.168.10.102:8848,192.168.10.103:8848
✅ 总结流程图
[部署机器准备] ➜ [配置 MySQL] ➜ [执行 SQL 脚本] ➜ [修改 application.properties] ➜ [配置 cluster.conf] ➜ [每个节点启动 cluster 模式] ➜ [验证控制台 + 配置同步] ➜ [可选 Nginx 统一入口]