Spring Cloud Alibaba基礎教程:Nacos的數據持久化mysql
前景回顧:git
前面的七篇文章,從Nacos介紹,到Nacos作註冊中心、作配置中心,一直都沒有說起持久化的問題。github
咱們服務的信息、配置的信息都放在哪的?spring
當咱們使用默認配置啓動Nacos時,全部配置文件都被Nacos保存在了內置的數據庫中。sql
在0.7版本以前,在單機模式時nacos使用嵌入式數據庫實現數據的存儲,不方便觀察數據存儲的基本狀況。0.7版本增長了支持mysql數據源能力數據庫
若是使用內嵌數據庫,註定會有存儲上限,本文帶你們一塊兒將Nacos中的數據實現持久化windows
本文的項目Demo繼續沿用以前文章中的聚合工程Nacos
,若小夥伴尚未以前的環境,可至源碼地址中下載app
本文的演示環境爲:windows平臺socket
本文使用Nacos(四)項目代碼做爲演示分佈式
項目內容不作修改
目前Nacos僅支持Mysql
數據庫,且版本要求:5.6.5+
Nacos的數據庫腳本文件在咱們下載Nacos-server時的壓縮包中就有
進入nacos-server-1.0.1\nacos\conf
目錄,初始化文件:nacos-mysql.sql
此處我建立一個名爲 mynacos
的數據庫,而後執行初始化腳本,成功後會生成 11
張表
這裏是須要修改Nacos-server的配置文件
Nacos-server其實就是一個Java工程或者說是一個Springboot項目,他的配置文件在nacos-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,啓動方式不變,直接雙擊執行nacos-server-1.0.1\nacos\bin
下的startup.cmd
文件
啓動成功後進入Nacos控制檯,此時的Nacos控制檯中面目一新,以前的數據都不見了
由於加入了新的數據源,Nacos從mysql中讀取全部的配置文件,而咱們剛剛初始化的數據庫是乾乾淨淨的,天然不會有什麼數據和信息顯示。
在公共空間(public)中新建一個配置文件DataID: nacos-config.yml
, 配置內容以下:
server: port: 9989 nacos: config: 配置文件已持久化到數據庫中...
再啓動Nacos(四)中的demo項目。服務啓動成功後,觀察Nacos控制檯以下
觀察數據庫mynacos
中的數據庫表 config_info
, 以下
請求一下接口 http://127.0.0.1:9989/getValue 返回結果:
配置文件已持久化到數據庫中...
Nacos經過集中式存儲來保證數據的持久化,同時也爲Nacos集羣部署奠基了基礎
試想一下,若是咱們以以前的方式啓動Nacos,若是想組建Nacos集羣,那各個節點中的數據惟一性就是最大的問題
Nacos採用了單一數據源,直接解決了分佈式和集羣部署中的一致性問題。