Nacos-搭建生產可用的Nacos集群


本節詳細探討如何搭建一個生產可用的Nacos集群。討論的內容主要包括:使用MySQL作為存儲持久化數據,以及如何搭建Nacos集群。

Nacos默認數據存儲在內嵌數據庫Derby中,不適合用於生產環境,官方推薦的最佳實踐是使用帶有主從的高可用數據庫集群。

生產環境需使用MySQL作為后端存儲,因此需要搭建MySQL。生產中,MySQL建議至少主備模式,高可用MySQL更佳。

一、部署架構圖

其中包含3個nacos節點,然后一個負載均衡器代理3個Nacos。這里使用nginx作為負載均衡器。

二、三個nacos節點的地址

| 節點   | ip            | port |
| ------ | ------------- | ---- |
| nacos1 | 192.168.10.44 | 8845 |
| nacos2 | 192.168.10.44 | 8846 |
| nacos3 | 192.168.10.44 | 8847 |

 

三、Nacos集群搭建步驟
1.搭建MySQL集群並初始化數據庫表
找到 conf/nacos-mysql.sql ,將其導入到數據庫中。

2.下載解壓nacos
將解壓后的nacos復制3份出來,即3個實例

 

3.進入每個實例,分別修改applicatio.properties配置文件,要修改的地方有兩處,一個是端口號,

 

另一個需要將mysql的nacos的配置訪問數據庫連接信息加入到尾部

db.num=1 db.url.0=jdbc:mysql://192.168.10.44:33064/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=xk-dev db.password.0=xk-dev

nacos2和nacos3也按照上面的步驟修改,只不過端口號分別換成8846和8847即可。

4.添加並修改cluster文件

將cluster.conf.example復制為cluster.conf文件,並在cluster.conf中作如下的配置

##推薦ip:port用具體的局域網ip,慎用127.0.0.1、localhost
127.0
.0.1:8845 127.0.0.1.8846 127.0.0.1.8847


顧名思義這里表示啟動的時候,nacos會尋找這個cluster.conf的配置文件中的信息,符合條件的實例就會加入到集群中

同樣的操作,在nacos2和nacos3中添加上面的這個配置文件,或者直接復制過去也可

5.分別啟動8845、8846、8847 nacos節點

D:\dev\nacos1\bin\startup.cmd
D:\dev\nacos2\bin\startup.cmd
D:\dev\nacos3\bin\startup.cmd

 

啟動成功后,分別訪問8845、8846、8847 nacos節點是否啟動成功

http://localhost:8845/nacos/
http://localhost:8846/nacos/
http://localhost:8847/nacos/

 

6.nginx反向代理
修改conf/nginx.conf文件,配置如下:

upstream nacos-cluster { server 127.0.0.1:8845; server 127.0.0.1:8846; server 127.0.0.1:8847; } server { listen 80; server_name localhost; location /nacos { proxy_pass http://nacos-cluster;
 } }

 

啟動nginx

cd D:\dev\nginx-1.18.0 d: start nginx

 

7.測試
訪問 http://localhost/nacos 可看到Nacos的登錄頁,登錄后即可正常使用Nacos。


8.Spring Cloud Alibaba連接Nacos集群

代碼中application.yml文件配置如下:

spring: cloud: nacos: server-addr: localhost:80 # nacos地址


9.優化&最佳實踐
實際項目中,建議為Nacos綁定一個域名(域名解析 & 修改NGINX配置的server_name),這樣即使未來Nacos Server需要遷移,也無需修改Nacos Client端的配置;

本文為了演示方便,將所有實例部署在了一台機器中;實際項目中,請將Nacos部署在不同機器中,從而實現更好的容災與隔離


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM