Nacos持久化和集群


參考官網:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html

官方建議:推薦使用Linux系統。3個或3個以上Nacos節點才能構成集群。使用外置數據源(mysql)。

集群方案如下:

 

   默認的nacos使用嵌入式數據庫derby實現數據的存儲。所以,如果啟動多個默認配置的nacos節點,數據存儲存在一致性的問題。為了解決這個問題,Nacos采用了集中式存儲的方法來支持集群化部署,目前支持MySQL的存儲。

1. nacos切換搭配mysql數據庫做持久化  

1.創建數據庫nacos_config,找到nacos\conf目錄下找到nacos-mysql.sql,里面是需要執行的sql腳本

2.修改conf/application.properties中開啟mysql持久化

 3.測試:

(1)nacos新建配置文件

(2)到mysql查看數據:

 2、集群設置(windows測試)

1.為了便於測試,我們復制三份nacos出來,分別改變不同的端口,數據庫都連接同一個上面建的庫。(修改conf/application.propertoes文件)

端口分別為8848、8849、8850

2.conf目錄下新建cluster.conf,參考cluster.conf.example

#2020-10-29T10:27:19.046
172.23.7.79:8848
172.23.7.79:8849
172.23.7.79:8850

3. nacos默認啟動是單機模式,需要修改為集群模式:修改bin/startup.cmd

 

 可以看到大概在55行左右使用了該變量,如下:

if %MODE% == "standalone" (
    set "JAVA_OPT=%JAVA_OPT% -Xms512m -Xmx512m -Xmn256m"
    set "JAVA_OPT=%JAVA_OPT% -Dnacos.standalone=true"
) else (
    if %EMBEDDED_STORAGE% == "embedded" (
        set "JAVA_OPT=%JAVA_OPT% -DembeddedStorage=true"
        )
    set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
    set "JAVA_OPT=%JAVA_OPT% -XX:-OmitStackTraceInFastThrow XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=%BASE_DIR%\logs\java_heapdump.hprof"
    set "JAVA_OPT=%JAVA_OPT% -XX:-UseLargePages"
)

4.啟動三個進行測試

分別訪問8848、8849、8850端口測試即可

5.訪問集群

 6.查看節點元數據,如下:(可以看到是主從模式,而且8848為主節點,后面兩個為從節點)

3.nainx進行集群轉發

1.windows下面下載nginx

2.修改nginx.conf,最后一個大括號內加入如下配置

    include vhost/*.conf;

3.cons/vhost/下面新建nacoscluster.conf

server {
    listen 8851;
    server_name localhost;
    
    location /{
        proxy_pass http://cluster;
    }
}

upstream cluster {
    server 127.0.0.1:8848;
    server 127.0.0.1:8849;
    server 127.0.0.1:8850;
}

4.啟動nginx

5.訪問測試:

 


免責聲明!

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



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