Spring Cloud Alibaba(6)---Nacos持久化Mysql8.0版本

雨點的名字發表於2021-04-27

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/目錄中就已經有相應的解壓包了。

Spring Cloud Alibaba(6)---Nacos持久化Mysql8.0版本

4、解壓

tar -xvf nacos-server-1.4.2-SNAPSHOT.tar.gz

接下來我們先不啟動伺服器,因為我們還需要修改一些配置檔案


三、修改配置檔案

1、初始化資料庫

Nacos的資料庫指令碼檔案在我們下載Nacos-server時的壓縮包中就有

進入nacos\conf目錄,初始化檔案:nacos-mysql.sql

此處我建立一個名為 nacos 的資料庫,然後執行初始化指令碼,成功後會生成 12 張表

Spring Cloud Alibaba(6)---Nacos持久化Mysql8.0版本

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、在客戶端新新增一條配置資料

Spring Cloud Alibaba(6)---Nacos持久化Mysql8.0版本

看列表 也顯示這條配置集已經建立成功

Spring Cloud Alibaba(6)---Nacos持久化Mysql8.0版本

2、檢視資料庫

既然客戶端都生成成功了,那就來看下資料庫中有沒有持久化這條資料

Spring Cloud Alibaba(6)---Nacos持久化Mysql8.0版本

很明顯 資料中也有這條資料,這樣就算nacos重新啟動這條資料也還是會有了。


### 參考

1、nacos官網快速啟動

2、nacos資料持久化MySQL8.0以上版本

3、Spring Cloud Alibaba基礎教程:Nacos的資料持久化



少說多做,句句都會得到別人的重視;多說少做,句句都會受到別人的忽視。(6)

相關文章