天天看點

Nacos 叢集搭建和持久化配置(Linux)

轉載聲明 : 該文章出處為 扛麻袋的少年

本文目錄:

    • 寫在開頭
    • 1.Nacos叢集架構圖
        • Ⅰ.Nacos叢集官方架構圖
        • Ⅱ.Nacos叢集真實架構圖
    • 2.Nacos資料庫支援
    • 3.Nacos 叢集部署搭建
        • 3.0 節點部署情況
        • 3.1 derby 切換 mysql 資料庫配置
            • Ⅰ. 執行nacos-mysql.sql腳本
            • Ⅱ. 修改application.properties,添加mysql支援
        • 3.2 cluster.conf 配置
        • 3.3 修改 nacos 啟動堆棧大小
        • 3.4 使用scp指令,進行nacos配置分發
        • 3.5. Nginx負載均衡配置
        • 3.6.啟動nacos叢集
        • 3.7.進入Nacos控制台
        • 3.8.檢視叢集節點啟動情況
        • 3.9 Nacos叢集環境,項目中nacos位址需寫 Nginx 位址

寫在開頭

  接上一篇文章:Spring Cloud Alibaba Nacos 用于服務注冊和配置中心。掌握了 Nacos 用于

服務注冊和配置中心

。為了滿足高可用,單節點 Nacos 服務肯定是不夠的,接下來就開始

Nacos 叢集環境搭建

nacos 安裝目錄:

/usr/local/env/

1.Nacos叢集架構圖

Ⅰ.Nacos叢集官方架構圖

Nacos 叢集搭建和持久化配置(Linux)

說明: 開源時,推薦使用者把所有服務清單放到一個vip下面,然後挂到一個域名下面

  1. http://ip1:port/openAPI

    直連ip模式

    ,機器挂則需要修改ip才可以使用。
  2. http://VIP:port/openAPI

    挂載VIP模式

    ,直連vip即可,下面挂server真實ip,可讀性不好。
  3. http://nacos.com:port/openAPI

    域名 + VIP模式

    ,可讀性好,而且換ip友善,推薦模式。

解惑:VIP??

  此處的 VIP 指代的是

Virtual IP

(虛拟IP)的意思,官方文檔說明不太清楚。通常情況下指代的是 Nginx。

Ⅱ.Nacos叢集真實架構圖

Nacos 叢集搭建和持久化配置(Linux)

2.Nacos資料庫支援

  在上篇部落格:Spring Cloud Alibaba Nacos 用于服務注冊和配置中心,手動将 Nacos 服務關閉再啟動。存儲在 Nacos 中的配置資訊并不會丢失。

這是因為 Nacos 預設内置 DerBy 資料庫。

嵌入式資料庫,請參考:nacos pom.xml 有引入 derby 依賴

  

在 Nacos 0.7 版本之前,在單機模式時 nacos 使用嵌入式資料庫(derby)實作資料的存儲,不友善觀察資料存儲的基本情況。0.7 版本增加了支援 mysql 資料源能力。

具體的操作步驟:

  1. 安裝資料庫,版本要求:5.6.5+
  2. 初始化mysql資料庫,資料庫初始化檔案:nacos-mysql.sql
  3. 修改

    conf/application.properties

    檔案,增加支援mysql資料源配置(目前隻支援mysql),添加mysql資料源的url、使用者名和密碼。
  4. 再啟動nacos,nacos所有寫嵌入式資料庫的資料都寫到了mysql

3.Nacos 叢集部署搭建

Nacos支援三種部署模式

  • 單機模式 - 用于測試和單機試用。
  • 叢集模式 - 用于生産環境,確定高可用。

  • 多叢集模式 - 用于多資料中心場景。

  此處附:Nacos叢集模式部署官方文檔

3.0 節點部署情況

伺服器IP 部署服務 端口 備注
192.168.204.202 MySQL 5.7.28 3306 測試,使用單機 MySQL,高可用參考:MySQL 5.7.28 主從複制實作
192.168.204.202 Nginx 1.16.0 8807 測試,使用單機 Nginx,Nginx叢集搭建請自行了解(Nginx預設端口為80,此處負載均衡使用8087端口)
192.168.204.202 nacos 8848 叢集節點01:nacos 01
192.168.204.203 nacos 8848 叢集節點02:nacos 02
192.168.204.204 nacos 8848 叢集節點03:nacos 03

提示: 三台機器配置相同,此處對一台進行配置。使用指令 scp 發送到其他兩台機器即可,此處以

192.168.204.202

為例說明。

3.1 derby 切換 mysql 資料庫配置

Ⅰ. 執行nacos-mysql.sql腳本

  進入 nacos 安裝目錄 conf 檔案下,找到

nacos-mysql.sql 腳本

  建立 nacos_config 資料庫,并執行 nacos-mysql.sql 腳本。

Nacos 叢集搭建和持久化配置(Linux)
Nacos 叢集搭建和持久化配置(Linux)

Ⅱ. 修改application.properties,添加mysql支援

 進入 nacos 安裝目錄 conf 檔案下,

application.properties

配置檔案添加 mysql 支援。

Nacos 叢集搭建和持久化配置(Linux)

添加mysql支援

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.204.202:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root
           

3.2 cluster.conf 配置

  進入 conf 目錄,使用指令:

cp cluster.conf.example cluster.conf

拷貝一份,重命名為 cluster.conf,在 cluster.conf 中進行配置,說明哪幾台機器組成叢集(填寫的是 nacos 叢集3個節點所在

IP:端口号

,不要寫 127.0.0.1,必須是Linux的真實IP)

192.168.204.202:8848

192.168.204.203:8848

192.168.204.204:8848

3.3 修改 nacos 啟動堆棧大小

  nacos 啟動時,預設

-Xms2g -Xmx2g

。如果你是在多台虛拟機測試,配置緊張,這一步就比較重要了。如果伺服器配置很優秀,這一步可以繞過。

配置緊張會導緻以下情況的出現:

  1. nacos 服務啟動很慢很慢的情況;
  2. nacos 服務注冊中心,有3個提供服務,你可能隻能看到 2個、1個、0個服務節點,還會來回跳動的問題。
  3. 反正還是會出現一些意想不到的問題,視情況而配置。

Xms 是指設定程式啟動時占用記憶體大小。

一般來講,大點,程式會啟動的快一點,但是也可能會導緻機器暫時間變慢。

Xmx 是指設定程式運作期間最大可占用的記憶體大小。

如果程式運作需要占用更多的記憶體,超出了這個設定值,就會抛出OutOfMemory異常。

  我們進入 bin 目錄,使用

vim startup.sh

對其進行修改,将其按照配置修改到指定大小即可。(好像可以通過啟動時添加 Xms 參數方式修改,我忘了怎麼搞了,此處就直接修改

.sh

啟動腳本了)

Nacos 叢集搭建和持久化配置(Linux)

3.4 使用scp指令,進行nacos配置分發

  192.168.204.202 一台 nacos 叢集環境配置完成,使用 scp 指令,将 nacos 目錄分發到

203/204

兩台機器。scp 指令的使用如下:(scp指令使用介紹,請參考:Linux指令—scp),

不使用 scp 指令,你也可以 rz、sz 以打包的方式進行上傳。

scp -r /usr/local/env/nacos [email protected]:/usr/local/env/

scp -r /usr/local/env/nacos [email protected]:/usr/local/env/

3.5. Nginx負載均衡配置

  在此處,已經預設 Nginx 服務已經OK,Nginx 服務跑在

192.168.204.202

。如需 Nginx 的搭建過程,請自行。

  進入

nginx/conf

目錄,對

nginx.conf

添加 nacos 叢集配置,配置如下圖所示:

Nacos 叢集搭建和持久化配置(Linux)

  配置完成,進入 sbin 目錄,使用

./nginx -c /usr/local/env/nginx-1.16.0/conf/nginx.conf

啟動 nginx,使用

-c

加載指定配置檔案,路徑為 nginx.conf 所在路徑。啟動完成,通過指令:

ps aux | grep nginx

檢視 nginx 是否啟動。如圖已經啟動成功。

Nacos 叢集搭建和持久化配置(Linux)

到此為止,Nginx 配置完成。

3.6.啟動nacos叢集

  進入 nacos 安裝所在的 bin 目錄,使用

sh startup.sh

啟動 叢集中的 3台 nacos。可以通過nacos安裝路勁 logs目錄,使用

tail -f nacos.log

檢視日志。

Nacos 叢集搭建和持久化配置(Linux)

啟動成功提示:

  

如果虛拟機資源緊張,此處會一直很長時間在 nacos is starting... 狀态,一定注意自己伺服器的配置。

Nacos 叢集搭建和持久化配置(Linux)

3.7.進入Nacos控制台

  已經配置 Nginx 負載均衡,是以我們使用 Nginx 8087 端口進入Nacos 控制台:

http://192.168.204.202:8087/nacos/

Nacos 叢集搭建和持久化配置(Linux)

3.8.檢視叢集節點啟動情況

Nacos 叢集搭建和持久化配置(Linux)

3.9 Nacos叢集環境,項目中nacos位址需寫 Nginx 位址

spring:
  application:
    name: nacos-payment-provider
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.204.202:8087 #配置Nacos位址(叢集使用Nginx,此處需配置Nginx位址)
           

  此處,1台提供服務(叢集環境,共3台,

9001、9002、9003 端口

),1台用于消費(

83端口

)。啟動項目,可以看到服務已經成功注冊到 Nacos。

Nacos 叢集搭建和持久化配置(Linux)

  延續上一篇部落格示例:Spring Cloud Alibaba Nacos 用于服務注冊和配置中心,使用 Nacos 叢集作為注冊中心。開始服務調用,可以正常實作負載均衡,如下圖所示:

Nacos 叢集搭建和持久化配置(Linux)

Nacos叢集搭建、持久化配置介紹到此為止。

步驟很詳細,本文不提供代碼下載下傳。謝謝Thanks♪(・ω・)ノ

下一篇:Spring Cloud Alibaba Sentinel 介紹、基本使用

繼續閱讀