Nacos叢集搭建 MYSQL+Nacos+Nginx
- 前言:
- 一.搭建Nacos叢集
- 二.利用Nginx實作Nacos叢集高可用
-
- 1.安裝Nginx
- 2.修改配置檔案
- 3.測試
由于Nacos是服務注冊中心和統一配置中心,生産開發中為了保障高可用性,得搭建Nacos叢集
叢集解決問題:
1.并發通路壓力
2.單節點故障問題
注意:
a.3個或3個以上Nacos節點才能構成叢集。
b.要求虛拟機記憶體配置設定必須大于3G以上
c.搭建Nacos時,需要清空data目錄中的資料,
d.如果持久化到mysql,需要重新加載nacos-mysql.sql檔案,資料庫中不能存在原始資料
1.拷貝3份Nacos目錄修改端口來模拟3台Nacos服務
cp -r nacos naco1
cp -r nacos naco2
cp -r nacos naco3
2.修改conf/application.properties端口号分别為8845,8846,8847
vim nacos1/conf/application.properties 8845
vim nacos2/conf/application.properties 8846
vim nacos3/conf/application.properties 8847
3.所有叢集節點修改conf目錄中cluster.conf檔案
需要在cluster.conf中添加所有節點的ip位址
注意:confi中預設是cluster.conf.exampl需要改為cluster.conf
mv cluster.conf.example cluster.conf
[root@JWCoder nacos1] cp conf/cluster.conf ../nacos2/conf/cluster.conf
[root@JWCoder nacos1] cp conf/cluster.conf ../nacos3/conf/cluster.conf
4.以叢集方式啟動
[root@JWCoder nacos] nacos1/bin/startup.sh
[root@JWCoder nacos] nacos2/bin/startup.sh
[root@JWCoder nacos] nacos3/bin/startup.sh
[root@JWCoder nacos] jps
2802 nacos-server.jar
2739 nacos-server.jar
2857 nacos-server.jar
2878 Jps
發現成功通路!!
檢視叢集清單發現三個節點狀态正常!!
嘗試用微服務注冊到其中一個節點,觀察另外2個節點的服務注冊清單,發現都已成功注冊!
我們向8845端口進行注冊,發現8846和8847另外兩個節點,已經同步了資料
此時我們還沒有實作高可用!!
server:
port: 8081
spring:
application:
name: NACOS-CLIENT
cloud:
nacos:
# 總位址
server-addr: 192.168.142.129:8845
此時我們是注冊到8845這個nacos節點,server-addr: 192.168.142.129:8845,如果8845節點當機,8846和8847應該上來提供服務,顯然目前我們沒法辦到!!
由于我已經提前安裝了好了Nginx,大家自行安裝
啟動Nginx,預設端口時80
關閉nginx
./nginx -s stop
或者
kill - 9 程序iD
2.修改nginx/conf/nginx.conf配置檔案
添加以下兩段配置
upstream nacos-servers {
server 192.168.142.129:8845;
server 192.168.142.129:8846;
server 192.168.142.129:8847;
}
location / {
proxy_pass http://nacos-servers/;
}
啟動nginx(配置檔案)
[root@JWCoder sbin] ./nginx -c /usr/local/nginx/conf/nginx.conf
位址欄輸入位址192.168.142.129/nacos,此時nginx就會利用預設的複雜均衡政策為我們選取一個節點,發現成功通路!!