Nacos

一、Nacos 为什么要做持久化?

  1. Nacos 默认使用内嵌数据库 Derby,数据存在本地
  2. 如果搭建集群 ,每个节点数据独立,互不同步,会出现:
    • 配置不一致
    • 服务注册信息不一致
  3. 持久化 = 统一使用 MySQL 存储数据,所有 Nacos 节点共用一个 MySQL,数据完全一致。

二、Nacos 持久化配置(切换到 MySQL)

1. 新建 MySQL 数据库

复制代码
CREATE DATABASE nacos DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

2. 执行 Nacos 官方建表语句

复制代码
/usr/local/nacos/conf/nacos-mysql.sql

直接在 Navicat/DBeaver 中运行,自动创建 Nacos 所需表。

3. 修改 Nacos 配置文件

复制代码
vim /usr/local/nacos/conf/application.properties

添加 / 修改以下配置:

复制代码
### 使用 MySQL 数据源
spring.datasource.platform=mysql

### 数据库数量
db.num=1

### MySQL 连接信息(改成你自己的地址/账号密码)
db.url.0=jdbc:mysql://192.168.20.9:3306/nacos?characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=1111

4. 重启 Nacos

复制代码
cd /usr/local/nacos/bin
./shutdown.sh
./startup.sh

5. 测试持久化

发布一条配置 → 去 MySQL 的 nacos.config_info 表中查看,数据已写入即成功。


三、Nacos 集群搭建

1. 为什么集群要 3 台?

  • Nacos 集群使用 Raft 算法 选主
  • 必须奇数台:3、5、7...
  • 3 台可以挂 1 台仍然可用,满足高可用。

2. 集群搭建步骤

① 准备集群配置文件
复制代码
cd /usr/local/nacos/conf
cp cluster.conf.example cluster.conf
vim cluster.conf

写入 3 个节点地址(本机 IP + 端口):

复制代码
192.168.61.132:8851
192.168.61.132:8852
192.168.61.132:8853
② 创建集群目录,复制 3 份 Nacos
复制代码
cd /usr/local
mkdir nacos-cluster
cp -r nacos nacos-cluster/nacos-8851
cp -r nacos nacos-cluster/nacos-8852
cp -r nacos nacos-cluster/nacos-8853
③ 修改每个节点端口
复制代码
# 8851
vim /usr/local/nacos-cluster/nacos-8851/conf/application.properties
server.port=8851

# 8852
vim /usr/local/nacos-cluster/nacos-8852/conf/application.properties
server.port=8852

# 8853
vim /usr/local/nacos-cluster/nacos-8853/conf/application.properties
server.port=8853
④ 启动 3 个 Nacos 节点(集群模式启动
复制代码
# 必须不加 -m standalone,默认就是集群模式
cd /usr/local/nacos-cluster/nacos-8851/bin
./startup.sh

cd /usr/local/nacos-cluster/nacos-8852/bin
./startup.sh

cd /usr/local/nacos-cluster/nacos-8853/bin
./startup.sh

查看集群状态:访问任意节点

plaintext

复制代码
http://IP:8851/nacos/#/cluster

能看到 3 个节点均为 UP 表示搭建成功。


四、Nginx 代理 Nacos 集群(统一入口)

1. 安装 Nginx 依赖

复制代码
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

2. 下载并安装 Nginx

复制代码
cd /usr/local
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
tar -zxvf nginx-1.12.0.tar.gz
cd nginx-1.12.0
./configure --prefix=/usr/local/nginx
make && make install

3. Nginx 常用命令

复制代码
# 启动
/usr/local/nginx/sbin/nginx

# 重启
/usr/local/nginx/sbin/nginx -s reload

# 关闭
/usr/local/nginx/sbin/nginx -s stop

4. 配置 Nginx 代理 Nacos 集群

复制代码
vim /usr/local/nginx/conf/nginx.conf

http 块内添加:

复制代码
upstream nacos {
    server 192.168.61.132:8851;
    server 192.168.61.132:8852;
    server 192.168.61.132:8853;
}

server {
    listen 80;
    server_name localhost;

    location / {
        proxy_pass http://nacos;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

重启 Nginx:

复制代码
/usr/local/nginx/sbin/nginx -s reload

5. 测试访问

直接访问 Nginx 地址即可自动负载均衡到 3 个 Nacos:

复制代码
http://192.168.61.132/nacos

最终架构(生产标准)

复制代码
用户/微服务 → Nginx(80) → Nacos集群(8851/8852/8853) → MySQL(统一存储)
相关推荐
摇滚侠5 小时前
Spring 零基础入门到进阶 基于 XML 管理 Bean 14-28
xml·数据库·spring
Metaphor6925 小时前
使用 Python 给 PDF 设置背景色或背景图
数据库·python·pdf
Gauss松鼠会5 小时前
【GaussDB】GaussDB重要通信参数汇总
服务器·网络·数据库·sql·性能优化·gaussdb·经验总结
睡不醒男孩0308235 小时前
第五篇:2026年企业级 PostgreSQL 高可用方案深度横评:Patroni vs. CLup 架构与可靠性全面对决
数据库·postgresql·架构
NineData5 小时前
SQL 都在等锁时,ChatDBA 先帮 MySQL 找到谁在挡路
数据库·人工智能·sql·mysql·安全·数据复制·数据迁移工具
超级无敌zhq5 小时前
后渗透痕迹清理:攻防对抗中的隐身术
网络·数据库·网络安全
2601_961845156 小时前
考研网课资源网盘|2027|资料
数据库·vim·sublime text·figma·photoshop·墨刀·高考
Amnesia0_06 小时前
MYSQL复合查询和内外连接
数据库·mysql
Gauss松鼠会6 小时前
【GaussDB】GaussDB SMP特性调优详解
java·服务器·前端·数据库·sql·算法·gaussdb
AI数据皮皮侠6 小时前
全国高考报名、录取数据(1977-2026)
大数据·数据库·人工智能·python·机器学习·高考