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(统一存储)
相关推荐
憧憬成为web高手2 小时前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis
段一凡-华北理工大学2 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
二宝哥3 小时前
CentOS 7.9 系统下 Redis 5.0.4 单机安装与源码编译安装指南
redis·centos
oradh4 小时前
Oracle XTTS实现跨版本迁移和升级(Oracle 11g单库升级至19C RAC集群)
数据库·oracle·11g升级19c·xtts跨版本迁移和升级
z123456789865 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
程序猿DD5 小时前
一个 API Key,统一调用大模型、生图和联网搜索
数据库·网关
java_logo6 小时前
Docker Compose 部署 ClickHouse:快速搭建高性能列式数据库
数据库·clickhouse·docker·列式数据库·轩辕镜像·高性能数据库·clickhouse部署教程
TlSfoward6 小时前
抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具
数据库·爬虫·网络协议·搜索引擎·php
数智化管理手记7 小时前
账龄分析手工统计易遗漏?自动账龄分析工具怎么搭建
大数据·网络·数据库·人工智能·数据挖掘
LabVIEW开发7 小时前
NI Package Manager安装LabVIEW时InternalServerError错误
网络·数据库·labview·labview知识·labview功能·labview程序