Nacos (⼋):Nacos 持久化
参考和感谢
前⾔
前景回顾:
前⾯的七篇⽂章,从Nacos 介绍,到Nacos 做注册中⼼、做配置中⼼,⼀直都没有提及持久化的问题。
我们服务的信息、配置的信息都放在哪的?
当我们使⽤默认配置启动Nacos 时,所有配置⽂件都被Nacos 保存在了内置的数据库中。
在0.7版本之前,在单机模式时nacos 使⽤嵌⼊式数据库实现数据的存储,不⽅便观察数据存储的基本情况。0.7版本增加了⽀持mysql 数据源能⼒
如果使⽤内嵌数据库,注定会有存储上限,本⽂带⼤家⼀起将Nacos 中的数据实现持久化
我的环境
Windows10
JDK8
SpringCloud :Finchley.RELEASE
SpringBoot :2.0.4.RELEASE
spring-cloud-alibaba-dependencies :0.2.2.RELEASE
Nacos-server :1.0.1
本⽂的项⽬Demo
继续沿⽤之前⽂章中的聚合⼯程,若⼩伙伴还没有之前的环境,可⾄中下载
本⽂的演⽰环境为:windows 平台项⽬准备
本⽂使⽤项⽬代码作为演⽰项⽬内容不做修改
安装数据库⽬前Nacos 仅⽀持数据库,且版本要求:初始化数据库
Nacos 的数据库脚本⽂件在我们下载Nacos-server 时的压缩包中就有
进⼊⽬录,初始化⽂件:此处我创建⼀个名为  的数据库,然后执⾏初始化脚本,成功后会⽣成  张表修改配置⽂件
这⾥是需要修改Nacos-server 的配置⽂件Nacos-server 其实就是⼀个Java ⼯程或者说是⼀个Springboot 项⽬,他的配置⽂件在⽬录下,名为 ,在⽂件底部添加数据源配置:
启动Nacos-server 和Nacos-config 先启动Nacos-server ,启动⽅式不变,直接双击执⾏下的⽂件
启动成功后进⼊Nacos 控制台,此时的Nacos 控制台中焕然⼀新,之前的数据都不见了
因为加⼊了新的数据源,Nacos 从mysql 中读取所有的配置⽂件,⽽我们刚刚初始化的数据库是⼲⼲净净的,⾃然不会有什么数据和信息显⽰。
在公共空间(public)中新建⼀个配置⽂件DataID: , 配置内容如下:
再启动中的demo 项⽬。服务启动成功后,观察Nacos 控制台如下
验证是否持久化到数据库中
观察数据库中的数据库表  , 如下
配置⽂件已持久化到数据库中...
Nacos Mysql    5.6.5+
nacos-server-1.0.1\nacos\conf nacos-mysql.sql
mynacos 11nacos-server-1.0.1\nacos\conf application.properties spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/mynacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
nacos-server-1.0.1\nacos\l server:springboot其实就是spring
port: 9989
nacos:
config: 配置⽂件已持久化到数据库中...
mynacos config_info
总结
Nacos通过集中式存储来保证数据的持久化,同时也为Nacos集部署奠定了基础
试想⼀下,如果我们以之前的⽅式启动Nacos,如果想组建Nacos集,那各个节点中的数据唯⼀性就是最⼤的问题Nacos采⽤了单⼀数据源,直接解决了分布式和集部署中的⼀致性问题。
⽂章作者:
⽂章链接: 本⽂⾸发于个⼈博客:
发布⽅式:
版权声明: 本博客所有⽂章除特别声明外,均采⽤ CC BY-NC-SA 4.0 许可协议。转载请注明来⾃ LarsCheng's Blog!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。