寫在前面的文章
- SpringCloudAlibaba快速入門(1)基於Nacos實現服務註冊與發現
- SpringCloudAlibaba快速入門(2)基於Nacos構建分佈式配置中心
- SpringCloudAlibaba快速入門(3)Nacos配置多環境管理
- SpringCloudAlibaba快速入門(4)Nacos數據持久化到數據庫
官方集羣部署說明文檔 https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
根據官方文檔說明,Nacos的集羣架構如下圖所示
要搭建 Nacos 集羣,則需要對數據進行集中式儲存,
這部分操作在上一篇文章(SpringCloudAlibaba快速入門(4)Nacos數據持久化到數據庫)中已經介紹,
接下來,我們根據官方文檔進行實操。
實戰
因爲是用於學習,我們沒有多臺服務器可以使用,
所以本例將在單機上同時啓動多個 Nacos 實例,每一個實例使用不同的端口。
啓動三個 Nacos 實例構成集羣,端口分別爲 8848、8849、8850,然後使用 Nginx 對三臺 Nacos 進行反向代理
第一步:安裝 Mysql 數據庫
第二步:初始化數據庫
初始化腳本在 Nacos 程序包下的 conf
目錄下的 nacos-mysql.sql
文件
第三步:配置 Nacos 數據源
修改 Nacos 程序包下 conf/application.properties
文件,添加 MySQL 數據源配置
文件中有示例,只需要打開註釋並修改即可
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3316/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=test
db.password=123456
第四步:配置集羣
在 Nacos 程序包的 conf
目錄下有一個 cluster.conf.example
文件,複製爲 cluster.conf
,內容爲
127.0.0.1:8848
127.0.0.1:8849
127.0.0.1:8850
第五步:啓動實例
因爲本例需要在單機上啓動多個 Nacos 實例,只是端口不一樣,所以啓動實例時,需要設置端口。
複製 startup.cmd
爲 startup-8849.cmd
,並設置端口
set "JAVA_OPT=%JAVA_OPT% -Dserver.port=8849"
複製 startup.cmd
爲 startup-8850.cmd
,並設置端口
set "JAVA_OPT=%JAVA_OPT% -Dserver.port=8850"
啓動三個實例,這樣 Nacos 集羣已經配置完成,接下來使用 Nginx 進行反向代理。
第六步:配置 Nginx 反向代理
upstream nacosserver {
server 127.0.0.1:8848;
server 127.0.0.1:8849;
server 127.0.0.1:8850;
}
...
server {
listen 8080;
server_name localhost;
location /nacos/ {
proxy_pass http://nacosserver/nacos/;
}
}
這樣就可以通過 localhost:8080/nacos
訪問 Nacos 後臺了。