生產環境當然要高可用,Alibaba Nacos 叢集部署
前面學習了單機模式下的啟動,今天嘗試下叢集部署。
生產環境中部署nacos肯定是使用叢集模式cluster保證高可用。
官方文件的叢集部署推薦使用VIP+域名模式,把所有服務列表放到一個vip下面,然後掛到一個域名下面。
三種部署方式
官方推薦,nacos叢集一般有3種方式,三種部署方式在訪問形式的區別如下,
http://ip1:port/openAPI 直連ip模式,機器掛則需要修改ip才可以使用
http://VIP:port/openAPI 掛載VIP模式,直連vip即可,下面掛server真實ip,可讀性不好
http://nacos.com:port/openAPI 域名 + VIP模式,可讀性好,而且換ip方便,推薦模式
官方建議至少3個或3個以上的節點來實現叢集模式。
修改啟動埠
程式啟動預設佔用的埠是8848,我們可以對埠進行修改,開啟conf檔案下的application.properties,修改啟動埠。
現在演示使用單機偽叢集模式,所以通過修改埠的方式來部署這3個例項,埠分別為:8848、8858、8868。
配置叢集配置檔案
在nacos的解壓目錄nacos/的conf目錄下,配置檔案cluster.conf,請每行配置成ip:port。(請配置3個或3個以上節點)
# ip:port
58.18.17.155:8848
58.18.17.155:8858
58.18.17.155:8868
配置 MySQL 資料庫
生產使用建議至少主備模式,或者採用高可用資料庫。
初始化 MySQL 資料庫
sql語句原始檔在distribution/conf/目錄下的nacos-mysql.sql,在本地初始化對應的資料庫。
新增資料庫配置
配置檔案在nacos的conf目錄下的application.properties,新增以下配置
db.num=1 db.url.0=jdbc:mysql://58.18.17.155:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=root db.password=root
db.num 為資料庫例項數量 如果有多個數據庫例項通過 db.url.0、db.url.1..... 指定不同的資料庫連結。
啟動伺服器
預設的沒有引數模式,就是叢集模式,啟動命令:
sh startup.sh
關閉伺服器,可以直接執行
sh shutdown.sh
配置Nginx服務
修改conf/nginx.conf配置
upstream nacos {
server 58.18.17.155:8848;
server 58.18.17.155:8858;
server 58.18.17.155:8868;
}
server {
listen 80;
server_name test.nacos.com;
location / {
proxy_pass http://nacos;
}
}
配置域名 test.nacos.com 繫結VIP
服務註冊和配置
服務註冊
curl -X PUT 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080
服務發現
curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instances?serviceName=nacos.naming.serviceName
釋出配置
curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=helloWorld
獲取配置
curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"
叢集管理
3個節點都正常啟動之後, 可以分別登入 各個web 介面檢視 叢集的節點、健康狀態:
http://58.18.17.155:8848/nacos/#/clusterManagement?dataId=&group=&appName=&namespace=&serverId=
http://58.18.17.155:8858/nacos/#/clusterManagement?dataId=&group=&appName=&namespace=&serverId=
http://58.18.17.155:8868/nacos/#/clusterManagement?dataId=&group=&appName=&namespace=&serverId=
掃碼關注公眾號:架構進化論,獲得第一手的技術資訊和原創文章