作者:阿裡雲 MVP郦強
1、叢集部署
相比較 Nacos 的單機部署方式(第一篇文章中有介紹),叢集部署方式稍顯麻煩一些,當然為了用于生産環境,必須確定 Nacos 的高可用性,是以還是有必要使用叢集部署。
準備環境跟第一篇文章中說的相同,額外的要求就是 Nacos 需要 3個或3個以上Nacos節點才能構成叢集,而且要使用 MySQL 作為資料源,主要用于服務配置的資料持久化。
下圖是官方推薦的叢集方案,通過域名 + VIP模式的方式來實作,我的了解VIP模式就用 Nginx 就行,用它來負載多個 Nacos 節點 IP,外部用戶端直接通過域名通路就可,不僅可讀性好,而且更換 IP 友善,最為推薦采用。

官方叢集方案圖
2、添加叢集配置檔案
nacos的conf目錄下有配置檔案cluster.conf,請每行配置成ip:port
如果您隻有一台機器,可以建立3個或3個以上的Nacos檔案夾,改一下端口号,也可以實作
cluster.conf配置
3、配置MySQL資料庫
Nacos 推薦生産環境中資料庫使用建議至少主備模式,或者采用高可用資料庫。
這裡為了簡化隻采用了一個資料庫,首先建立一個名為 nacos_config 的資料庫,然後找到nacos/conf下的 nacos-mysql.sql 檔案執行即可。
nacos_config資料庫
在nacos的conf目錄下的application.properties,添加以下配置
application.properties配置
4、啟動Nacos叢集模式
在沒有參數模式,是叢集模式
sh startup.sh
輸出資訊看start.out,如果最後提示: INFO Nacos started successfully in cluster mode.這樣就表示叢集模式啟動成功,然後打開任何一個Nacos控制台都能看到節點清單
叢集節點清單
可以從上面看到,叢集下的 Nacos 節點狀态分為LEADER 和 FOLLOWER 兩種,跟我們熟悉的主從架構相似。如果您想簡單的話,推薦使用阿裡雲的MSE,3分鐘幫您搞定Nacos叢集模式
MSE的Nacos叢集模式
5、Nginx配置
我是Mac電腦,是以使用brew的方式安裝Nginx,然後在Nginx中進行配置
Nginx中的配置
注意:server_name 就是 直接改成域名就行。
然後Nginx -s reload 重新加載配置後即可,我把nacos官方Spring Cloud Nacos Example的示例打開,Provider和Consumer兩個項目中的application.properties檔案的nacos server位址都改成了 Nginx中配置的server_name。
指定nacos的server位址
啟動項目,就可以在nacos叢集的任何一個節點的服務管理清單中看到裡面已經有服務注冊成功了
服務清單頁
然後在浏覽器中輸入
http://localhost:8080/echo/強哥 ,看到傳回 Hello Nacos Discovery 強哥,這樣就表示成功了,其實這個Example就是微服務和微服務之間的調用,所有nacos示例代碼下載下傳
執行Consumer服務,成功請求到Provider服務
6、總結
如果是開發環境建議單節點就行了,測試和生産環境用叢集模式,而且MySQL資料庫也建議使用阿裡雲的RDS服務,主從架構。下一篇我們将介紹 幾個主流微服務架構配置中心産品比較 Spring Cloud Config、阿裡雲ACM、Nacos等。
首發簡書。