天天看點

Nacos高可用叢集搭建

nacos官方給出的叢集架構圖不太明确,下面我自己繪了一個圖,接下來一步步安裝測試:
Nacos高可用叢集搭建

安裝準備

  • centos7環境
  • nacos-1.3.1
  • nginx-1.19.1
  • mysql-8.0.20
  • jdk-1.8+

1.我這裡安裝時是先安裝了一個虛拟機,然後再克隆兩個虛拟機組成三個節點的nacos叢集。克隆的虛拟機配置一下網絡問題就OK。

2.nacos從GitHub上下載下傳很慢我已經準備好放藍奏雲上了,需要的可以下載下傳速度很快。​​nacos-1.3.1下載下傳位址​​3.這裡隻示範安裝nacos,是以預設大家已經裝了nginx和mysql,我也給大家提供一下這兩個的安裝步驟,是程式羊總結的軟體安裝手冊,這個對于初學者很有用我也放雲上了,剛需自取!!! Java開發軟體安裝手冊4.實驗環節nginx和mysql我們隻需要單機安裝即可。

5.虛拟機的firewalld要關閉

6 要保證三個虛拟機能ping通外網,同時虛拟機之間也能互通。

安裝nacos

  1. 在/usr/local/(這個目錄一般放系統管理者在本機安裝自己下載下傳的軟體)目錄下建立一個nacos目錄,專門放置nacos 。mkdir nacos
  2. 在/usr/local/nacos目錄下解壓nacos安裝包 tar -zxvf nacos-server-1.3.1.tar.gz
  3. 進入bin目錄,目前目錄下執行 ./startup.sh -m standalone 就可單節點啟動nacos
    Nacos高可用叢集搭建
    出現以上提示說明單節點啟動成功,在浏覽器中輸入虛拟機ip位址:8848/nacos可正常通路就表示安裝成功的,還是特别簡單的。

nacos持久化切換配置

nacos在沒有使用外部資料源的情況下,使用的是Apache的Derby内嵌資料庫,是以當我們退出nacos界面或重新開機nacos時再次啟動資料也不會丢失,但是我們以後要做叢集,如果啟動多個nacos執行個體,都使用自己内嵌資料庫顯然不合理,導緻資料一緻性問題。是以我們采用集中式存儲的方式來支援叢集化部署。其實也很簡單直接修改nacos的配置檔案即可。

步驟如下:

  1. 在自己的資料庫伺服器上建立一個名為nacos_config的資料庫,注意是英文下劃線;
  2. cd /usr/local/nacos/conf 找到nacos-mysql.sql檔案,複制裡面的内容或者直接用資料庫工具執行這個SQL。
  3. 給application.properties檔案做個備份,目的是如果這個配置檔案被我們玩壞了還可以恢複原樣 cp application.properties application.properties.bk
  4. 修改application.properties檔案内容并添加以下配置:
spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://你的mysql伺服器IP位址:端口号/nacos-config?characterEncoding=utf8&connectionTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user=你的使用者名 db.password=你的資料庫密碼      
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

5.nacos關閉重新開機後去nacos的logs目錄下找start.out日志用cat指令檢視會發現如下:

Nacos高可用叢集搭建

如果顯示劃橫線的字樣說明nacos使用外部存儲表示安裝成功。

叢集配置檔案的修改

  1. 同樣在conf目錄下,nacos官方給的叢集部署配置示例檔案是cluster.conf.example檔案,我們先拷貝一份做正式工的配置檔案 cp cluster.conf.example cluster.conf
  2. 修改cluster.conf檔案,這裡的配置非常簡單,把作為叢集的幾台機器的IP位址和占用的端口号寫入即可,這裡以我的為例:
    Nacos高可用叢集搭建
    3.儲存重新開機nacos。

其他節點的配置

在其他機器上同樣是修改application.properties和cluster.conf兩個檔案,是以nacos的叢集的配置十分簡單。而且都可以單個啟動很靈活!

安裝nginx進行分流負載均衡

nginx的安裝這裡不進行示範,安裝手冊中很詳細。這裡隻說明nginx怎麼配置,如下:

  1. nginx安裝後預設的配置檔案在/usr/local/nginx/conf/nginx.conf,直接修改這裡面的配置檔案即可,
  2. 先修改nginx的監聽端口如下:
    Nacos高可用叢集搭建
    我改的是1111,這個不需要統一修改為什麼。

3.負載均衡的配置如下:

Nacos高可用叢集搭建

nginx的upstream配置方式有幾種,這裡就采用預設的輪詢方式。

4.修改儲存後去nginx的啟動檔案處重新加載一下配置檔案也可以測試有沒有文法錯誤:

./nginx -s reload

./nginx -t

叢集的啟動

1.在每個機器的nacos安裝目錄的bin目錄下執行 ./startup.sh 指令,成功時如下:

Nacos高可用叢集搭建

劃橫線的地方顯示以叢集的方式啟動了。在其他機器上也啟動起來

2.啟動nginx

Nacos高可用叢集搭建

3.浏覽器中通路nginx的1111端口看是否能進入nacos的界面

Nacos高可用叢集搭建

通路成功,叢集配置成功。

叢集狀态下的服務注冊

服務提供者的注冊位址應該是NGINX的位址,注冊請求由NGINX轉發到實際的nacos三個機器上。