Spring Cloud Alibaba教程(四):解读Nacos实现配置中心默认存储方式

一、前言

在上一篇文章: Spring Cloud Alibaba教程(三):使用Nacos实现分布式配置中心 中,我们实现了基于nacos做分布式配置中心,实施的存储、更新我们的配置文件数据,在使用以往的一些配置中心时,服务重启或者注册中心重启后,配置文件数据将会丢失,这种情况是因为将数据储存在JVM的内存当中,当JVM不再提供运行时,数据也会相应的丢失,一些开源框架默认将数据存储在JVM内存中的还挺多的,那么nacos又是存储在哪里呢?

二、nacos默认存储存储方式

1.了解nacos默认储存

聪明的你不难发现,无论你是在重启服务还是重启nacos-server配置中心,你之前所存储的配置文件信息都不会丢失,这是因为alibaba默认将nacos-server作为分布式配置中心的数据存储到了一个叫做derby的内嵌数据库到Java应用程序中了,百度百科了解下derby,你会知道Derby是什么:

Derby是一个理想的,并且开源的,100% Java编写的,容易管理的关系数据库管理系统,它可以和一些商业产品的特性进行交付。Apache Derby非常小巧,核心部分derby.jar只有2M,所以既可以做为单独的数据库服务器使用,也可以内嵌在应用程序中使用。Cognos 8 BI的Content Store默认就是使用的Derby数据库,可以在Cognos8的安装目录下看到一个叫derby10.1.2.1的目录,就是内嵌的10.1.2.1 版本的derby。

另外,除了上面提到的使用nacos做分布式配置中心时,数据除了存储到一个内嵌到Java应用程序derby数据库中之外,nacos官方还提供了存储到MySQL中,在1.2.1及之前的版本,支持的只有Mysql,暂不支持其他关系型数据库。官方文档介绍如下:

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、用户名和密码。
spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos_devtest
db.password=youdontknow

再以单机模式启动nacosnacos所有写嵌入式数据库的数据都写到了mysql ,这一内容在下一篇博客讲解。

文档参考Nacos: Nacos支持三种部署模式

三、nacos默认的存储方式

1. 默认存在Derby内嵌数据库中

找到nacos目录下的datas目录,你会发现有个derby-data文件目录,数据默认是存储在这理,但是不能可视化,不过可以通过IDEA工具看到
在这里插入图片描述

2. 使用IDEA连接Derby查看数据

注意: nacos-server一定要停止,不要开启、不要开启、不要开启,否则连不上

  • 下载驱动连接Derby
  • 账号和密码: nacos/nacos
    在这里插入图片描述
  • 查看数据库表
    加粗样式
    这里面就是存储的nacos分布式配置中心的配置文件数据。

四、Spring Cloud Alibaba教程

下一篇: Spring Cloud Alibaba教程(五):将Nacos配置中心持久化到MySQL

五、参考文档

Nacos 文档: https://nacos.io/zh-cn/docs/what-is-nacos.html

在这里插入图片描述

发布了337 篇原创文章 · 获赞 237 · 访问量 81万+

猜你喜欢

转载自blog.csdn.net/Thinkingcao/article/details/105444718