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(统一存储)
相关推荐
倔强的石头_2 小时前
NFS网络文件系统下企业级数据库安装排障实战:环境变量失效与权限问题的深度解析
数据库
Linux运维技术栈2 小时前
Cloudflare Argo Smart Routing全球加速:优化跨境回源链路,提升跨区域访问体验
大数据·前端·数据库
2402_854808372 小时前
CSS如何实现元素在容器内居中_利用margin-auto技巧
jvm·数据库·python
weixin_580614002 小时前
html标签怎么表示用户输入_kbd标签键盘快捷键标注【介绍】
jvm·数据库·python
m0_716430072 小时前
如何监控集群 interconnect_ping与traceroute验证心跳通畅.txt
jvm·数据库·python
m0_678485452 小时前
如何通过 curl 调用 Go 标准库 RPC 服务(JSON-RPC 协议)
jvm·数据库·python
码农阿豪2 小时前
一次 AI 调用 15 万 Token 只花了 $0.058?彻底搞懂 Token、缓存读、补全计费机制!(附完整架构图)
人工智能·spring·缓存
Ai搬运工12 小时前
【保姆级教程】B站缓存视频如何转为正常MP4格式?
缓存·音视频·bilibili
敲上瘾2 小时前
高并发内存池(三):PageCache(页缓存)的实现
linux·c++·缓存·高并发内存池·池化技术