《SpringCloud Alibaba 微服务架构》专题(六)-Spring Cloud Alibaba基于Nacos分布式配置中心存储原理

1.前言

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

2.nacos默认存储存储方式

2.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.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、用户名和密码。

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

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

3.nacos默认的存储方式

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

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

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

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

  • 下载驱动连接Derby
  • 账号和密码: nacos/nacos

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
这里面就是存储的nacos分布式配置中心的配置文件数据。

猜你喜欢

转载自blog.csdn.net/BruceLiu_code/article/details/113861095