轉載聲明 : 該文章出處為 扛麻袋的少年
本文目錄:
-
- 寫在開頭
- 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叢集官方架構圖
說明: 開源時,推薦使用者把所有服務清單放到一個vip下面,然後挂到一個域名下面
- http://ip1:port/openAPI
,機器挂則需要修改ip才可以使用。直連ip模式
- http://VIP:port/openAPI
,直連vip即可,下面挂server真實ip,可讀性不好。挂載VIP模式
- http://nacos.com:port/openAPI
,可讀性好,而且換ip友善,推薦模式。域名 + VIP模式
解惑:VIP??
此處的 VIP 指代的是
Virtual IP
(虛拟IP)的意思,官方文檔說明不太清楚。通常情況下指代的是 Nginx。
Ⅱ.Nacos叢集真實架構圖
2.Nacos資料庫支援
在上篇部落格:Spring Cloud Alibaba Nacos 用于服務注冊和配置中心,手動将 Nacos 服務關閉再啟動。存儲在 Nacos 中的配置資訊并不會丢失。
這是因為 Nacos 預設内置 DerBy 資料庫。
嵌入式資料庫,請參考:nacos pom.xml 有引入 derby 依賴
在 Nacos 0.7 版本之前,在單機模式時 nacos 使用嵌入式資料庫(derby)實作資料的存儲,不友善觀察資料存儲的基本情況。0.7 版本增加了支援 mysql 資料源能力。
具體的操作步驟:
- 安裝資料庫,版本要求:5.6.5+
- 初始化mysql資料庫,資料庫初始化檔案:nacos-mysql.sql
- 修改
檔案,增加支援mysql資料源配置(目前隻支援mysql),添加mysql資料源的url、使用者名和密碼。conf/application.properties
- 再啟動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 腳本。
Ⅱ. 修改application.properties,添加mysql支援
進入 nacos 安裝目錄 conf 檔案下,
application.properties
配置檔案添加 mysql 支援。
添加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
。如果你是在多台虛拟機測試,配置緊張,這一步就比較重要了。如果伺服器配置很優秀,這一步可以繞過。
配置緊張會導緻以下情況的出現:
- nacos 服務啟動很慢很慢的情況;
- nacos 服務注冊中心,有3個提供服務,你可能隻能看到 2個、1個、0個服務節點,還會來回跳動的問題。
- 反正還是會出現一些意想不到的問題,視情況而配置。
一般來講,大點,程式會啟動的快一點,但是也可能會導緻機器暫時間變慢。
Xms 是指設定程式啟動時占用記憶體大小。
如果程式運作需要占用更多的記憶體,超出了這個設定值,就會抛出OutOfMemory異常。
Xmx 是指設定程式運作期間最大可占用的記憶體大小。
我們進入 bin 目錄,使用
vim startup.sh
對其進行修改,将其按照配置修改到指定大小即可。(好像可以通過啟動時添加 Xms 參數方式修改,我忘了怎麼搞了,此處就直接修改
.sh
啟動腳本了)
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 叢集配置,配置如下圖所示:
配置完成,進入 sbin 目錄,使用
./nginx -c /usr/local/env/nginx-1.16.0/conf/nginx.conf
啟動 nginx,使用
-c
加載指定配置檔案,路徑為 nginx.conf 所在路徑。啟動完成,通過指令:
ps aux | grep nginx
檢視 nginx 是否啟動。如圖已經啟動成功。
到此為止,Nginx 配置完成。
3.6.啟動nacos叢集
進入 nacos 安裝所在的 bin 目錄,使用
sh startup.sh
啟動 叢集中的 3台 nacos。可以通過nacos安裝路勁 logs目錄,使用
tail -f nacos.log
檢視日志。
啟動成功提示:
如果虛拟機資源緊張,此處會一直很長時間在 nacos is starting... 狀态,一定注意自己伺服器的配置。
3.7.進入Nacos控制台
已經配置 Nginx 負載均衡,是以我們使用 Nginx 8087 端口進入Nacos 控制台:
http://192.168.204.202:8087/nacos/
3.8.檢視叢集節點啟動情況
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。
延續上一篇部落格示例:Spring Cloud Alibaba Nacos 用于服務注冊和配置中心,使用 Nacos 叢集作為注冊中心。開始服務調用,可以正常實作負載均衡,如下圖所示:
Nacos叢集搭建、持久化配置介紹到此為止。
步驟很詳細,本文不提供代碼下載下傳。謝謝Thanks♪(・ω・)ノ
下一篇:Spring Cloud Alibaba Sentinel 介紹、基本使用