[toc]

零、问题现状

默认Nacos使用嵌入式数据库实现数据的存储。所以,如果启动多个默认配置下的Nacos节点,数据存储是存在一致性问题的。
为了解决这个问题,Nacos采用了集中式存储的方式来支持集群化部署,目前只支持MySQL的存储。

一、nacos部署方式

1. Nacos支持三种部署模式

  1. 单机模式-用于测试和单机试用。
  2. 集群模式–用于生产环境,确保高可用。
  3. 多集群模式-用于多数据中心场景。

Windows 环境启动
cmd startup.cmd 或者双击startup.cmd文件
=========================
Linux 环境启动
./startup.sh

2. 单机模式支持mysql

在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力,具体的操作步骤:

  1. 安装数据库,版本要求:5.6.5+
  2. 初始化mysql数据库,数据库初始化文件: nacos-mysql.sql
  3. 修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。

再以单机模式启动nacos,nacos所有写嵌入式数据库的数据都写到了mysql

二、nacos持久化配置

由于Nacos默认自带的是嵌入式数据库derby,所以要修改配置文件,把默认的derby数据库切换到mysql下。

1. mysql环境安装

安装数据库,版本要求:5.6.5+

2. 创建数据库

打开数据库脚本发现,脚本已经说明数据库名称,而且脚本文件没有创建数据库的意思!!
这时需要手动创建数据库nacos_config
image.png
在连接客户端手动右键创建或者sql创建数据库。

  1. sql创建
create database nacos_config;
  1. 右键创建
    image.png

3. 执行数据库脚本

找到nacos解压目录下,找到nacos-mysql.sql,进行mysql数据库,进行执行
image.png
image.png

4. 修改nacos配置

数据库和数据表都已经创建完毕,这时进行修改nacos配置,进行切换到mysql数据库下。
找到解压文件下的application.properties
image.png

进行新增如下配置

spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=3000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=root

image.png

可能存在的问题
数据库连不上

  1. ip或者端口是否正确
  2. 账号密码是否正确
  3. 网络问题,修改连接时长

三、测试

1. 启动nacos

image.png

2. 添加配置

新增配置文件
image.png

3. 查看数据库

image.png

发现新增的配置文件id,已经入库到mysql数据库中

Q.E.D.


只有创造,才是真正的享受,只有拚搏,才是充实的生活。