Spring Cloud Alibaba系列教程-03-搭建生產可用的Nacos叢集
Spring Cloud Alibaba系列教程-01-Nacos安裝與啟停 一節, 已搭建一個單例項Nacos——它使用內嵌資料庫Derby,這顯然不適用於生產。
本節詳細探討如何搭建一個生產可用的Nacos叢集。討論的內容主要包括:使用MySQL作為儲存持久化資料,以及如何搭建Nacos叢集。
安裝MySQL資料庫
生產環境需使用MySQL作為後端儲存,因此需要搭建MySQL。生產中,MySQL建議至少主備模式,高可用MySQL更佳。
高可用MySQL的搭建可參考:https://blog.csdn.net/jx_jy/article/details/80165584
注意:Nacos支援的MySQL版本為:5.6.5+
匯入初始化指令碼
找到 conf/nacos-mysql.sql
,將其匯入到資料庫中。
配置資料庫連線
找到 conf/application.properties
,新增如下內容:
# 表明用MySQL作為後端儲存 spring.datasource.platform=mysql db.num=1 # MySQL JDBC地址 db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true # 資料庫賬號 db.user=nacos # 資料庫密碼 db.password=nacos
部署架構圖
下圖是來自Nacos官方的部署架構圖:
主機規劃
節點 | 埠 |
---|---|
127.0.0.1 | 8848 |
127.0.0.1 | 8849 |
127.0.0.1 | 8850 |
複製三份Nacos安裝包,將 conf/application.properties
中的
server.port=8848
分別改為:
server.port=8848
server.port=8849
server.port=8850
開始搭建
-
找到
conf/cluster.conf.example
,將其改名為conf/cluster.conf
,並將內容改為類似如下,即:以ip:埠
的形式列出Nacos叢集中所有例項的地址列表:# ip:port 127.0.0.1:8848 127.0.0.1:8849 127.0.0.1:8850
-
啟動所有Nacos例項
配置代理伺服器
-
安裝NGINX並啟動
-
為NGINX新增如下配置(對於Linux作業系統,如在安裝NGINX時未自定義目錄,則可在
/etc/nginx/conf.d
新建檔案,命名為nacos.conf
,內容如下;同時刪除default.conf
即可):upstream nacos { server 127.0.0.1:8848; server 127.0.0.1:8849; server 127.0.0.1:8850; } server { listen 80; server_name localhost; location /nacos/ { proxy_pass http://nacos/nacos/; } }
測試
訪問 http://localhost/nacos
可看到Nacos的登入頁,登入後即可正常使用Nacos。
優化&最佳實踐
- 實際專案中,建議為Nacos繫結一個域名,這樣即使未來有遷移Nacos的需求,客戶端也無需修改配置;
- 本文為了演示方便,將所有Nacos例項都部署在了一臺機器中;實際專案中,請將Nacos部署在不同機器中,從而實現更好的容災與隔離
參考文件
https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
本文首發
http://www.itmuch.com/spring-cloud-alibaba/03-nacos-ha/
乾貨分享