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.访问测试:

 

posted @ 2020-10-28 23:04  QiaoZhi  阅读(1321)  评论(0编辑  收藏  举报