当前位置: 首页 > news >正文

分布式微服务--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端口
node1192.168.10.1018848
node2192.168.10.1028848
node3192.168.10.1038848

本地也可以通过启动多个端口模拟(不同进程、不同端口、不同 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 统一入口]
http://www.dtcms.com/a/316111.html

相关文章:

  • 【CTF】命令注入绕过技术专题:变量比较与逻辑运算
  • Spring Boot 整合 Thymeleaf
  • 【qt5_study】1.Hello world
  • 中国地级及以上城市人均GDP数据集(1990-2022年)
  • 【运动控制框架】WPF运动控制框架源码,可用于激光切割机,雕刻机,分板机,点胶机,插件机等设备,开箱即用
  • 37.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--扩展功能--增加Github Action
  • 400V降24V,200mA,应用领域:从生活到工业的 “全能电源管家”
  • Windows 11 使用Windows Hello使用人脸识别登录失败,重新录入人脸识别输入PIN后报Windows Hello安装程序白屏无响应的问题解决
  • LeetCode347.前K个高频元素(hash表+桶排序)
  • scikit-learn工具介绍
  • 五十、【Linux系统shell脚本】case语句 、 函数及中断控制演示
  • kafka部署集群模式
  • 力扣-128.最长连续序列
  • # Kafka 消费堆积:从现象到解决的全链路分析
  • AI智能体开发流程与产品设计
  • Java商城开发的难点与解决方案
  • ShapeLLM-Omni 论文解读
  • JVM(Java Virtual Machine,Java 虚拟机)超详细总结
  • 《Linux编译器:gcc/g++食用指南》
  • 【Golang】本地缓存go-cache
  • 前端实用工具方法 —— 持续更新中...
  • 暑期算法训练.14
  • 朴素贝叶斯(Naive Bayes)算法详解
  • 前端实现大模型流式响应方案
  • 播放器音频后处理实践(一)
  • LeetCode——2683. 相邻值的按位异或
  • 3. 为什么 0.1 + 0.2 != 0.3
  • Physics Simulation - UE中Projectile相关事项
  • Android 性能基准测试(Benchmark)完全指南:专业方法与最佳实践
  • VNC连接VirtualBox中的Ubuntu24.04 desktop图形化(GUI)界面