Nacos持久化Mysql8.0版本
有關Nacos之前寫過三篇文章。
Spring Cloud Alibaba(3)---Nacos概述
Spring Cloud Alibaba(4)---Nacos(註冊中心)
Spring Cloud Alibaba(5)---Nacos(配置中心)
## 一、背景
我們服務的資訊、配置的資訊都放在哪的?官網有說過
當我們使用預設配置啟動Nacos時,所有配置檔案都被Nacos儲存在了內建的資料庫中。
這裡所指的內建資料庫其實就是記憶體中,既然是配置在記憶體中,那麼每當我們重啟Nacos的時候,所有配置好的資訊都會丟失,這顯然是我們不能夠接受的,所以我們就需要去配置,
讓配置資料存在Mysql中,這樣當我們重啟伺服器的時候,配置資料依舊在。
架構資訊
Nacos 1.4.2 + MYSQL 8.0.22
二、Nacos客戶端部署
客戶端部署其實官方給了兩種方式 一種是 從 Github 上下載原始碼。另一種是 直接下載壓縮包。官方地址
之前在寫Nacos概述的時候,是直接去官網下載 nacos-server-1.3.2.tar.gz 的壓縮包,下載解壓後 通過命令執行。這裡我們需要用第二種方式,我們直接去拉nacos原始碼後,
自己打成nacos-server-1.4.2-SNAPSHOT.tar.gz 壓縮包。
為什麼要不用官方直接提供的壓縮包,而需要我們自己下原始碼在打成壓縮包,這樣多次一舉呢?
是因為,我們是 MYSQL 8.0.22 版本的,所以我們要下載原始碼,把pom檔案中對應的連線資料庫的驅動jar包改成8.0.22版本的,然後重新打成壓縮包。
1、拉取原始碼
這個當前拉取的是1.4.2版本的Nacos,你也可以指定拉取版本
git clone https://github.com/alibaba/nacos.git
2、修改Mysql連線驅動
1.4.2版本的Nacos所用的mysql-connector-java版本是8.0.21,這裡修改成 8.0.22。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
注意
其實這裡可以不用修改,因為8.0.21和8.0.22,差異很小,所以我們不用修改都是可以的。就是說我們都不用取拉原始碼在通過命令打包,而是直接下載1.4.2版本的
壓縮包就可以了。當然如果你的是1.3.1以下版本的Nacos,那麼Mysql驅動是5.7版本的那麼這個是需要修改成8以上版本的。
3、打包
進入nacos目錄
cd nacos
maven打包
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
如果直接成功後,在distribution/target/
目錄中就已經有相應的解壓包了。
4、解壓
tar -xvf nacos-server-1.4.2-SNAPSHOT.tar.gz
接下來我們先不啟動伺服器,因為我們還需要修改一些配置檔案
三、修改配置檔案
1、初始化資料庫
Nacos的資料庫指令碼檔案在我們下載Nacos-server時的壓縮包中就有
進入nacos\conf目錄,初始化檔案:nacos-mysql.sql
此處我建立一個名為 nacos
的資料庫,然後執行初始化指令碼,成功後會生成 12 張表
2、修改配置檔案
它的配置檔案也在 nacos\conf
目錄下,名為 application.properties
,在檔案底部新增資料來源配置:
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
3、啟動伺服器
現在資料庫和配置都已經修改了,那麼就啟動伺服器
//先進入bin目錄
cd nacos/bin
啟動命令(standalone代表著單機模式執行,非叢集模式):
sh startup.sh -m standalone
如果您使用的是ubuntu系統,或者執行指令碼報錯提示[[符號找不到,可嘗試如下執行:
bash startup.sh -m standalone
注意
執行命令地方在上面壓縮的 distribution/target/nacos-server-1.4.2-SNAPSHOT/nacos/bin 位置下,而不是在distribution的bin下。
啟動後,能夠正常訪問下面地址,那就說明已經配置成功,
http://127.0.0.1:8848/nacos
如果上面訪問失敗,那就去 nacos\log 目錄下,名為 nacos.log
看下有沒有錯誤日誌
四 測試
1、在客戶端新新增一條配置資料
看列表 也顯示這條配置集已經建立成功
2、檢視資料庫
既然客戶端都生成成功了,那就來看下資料庫中有沒有持久化這條資料
很明顯 資料中也有這條資料,這樣就算nacos重新啟動這條資料也還是會有了。
### 參考
3、Spring Cloud Alibaba基礎教程:Nacos的資料持久化
少說多做,句句都會得到別人的重視;多說少做,句句都會受到別人的忽視。(6)