1. Nacos 的集群模式
-
单机模式 - 用于测试和单机试用。
-
集群模式 - 用于生产环境,确保高可用。
-
多集群模式 - 用于多数据中心场景。
1.1 针对集群部署模式,Nacos文档中也提供了三种集群部署方案
-
http://ip1:port/openAPI
直连ip模式:
-
特点: ip+端口进行部署,客户端直接连接Nacos的ip
-
缺点: 只能连接单台 Nacos ,故障切换无法实现。
-
-
http://Vip:port/openAPI
挂载虚拟IP模式:
-
特点: 配合 KeepAlived,Nacos真实ip都挂载虚拟Ip下,客户端访问Vip发起请求。当主Nacos宕机后,备用Nacos接管,实现高可用。
-
缺点: 实现了高可用,但是无法实现复杂均衡。
-
-
http://www.nacostest.com:port/openAPI
挂载虚拟IP+域名模式:
-
特点: 为虚拟ip绑定一个域名,当Nacos集群迁移时,客户端配置无需修改。
-
缺点: 实现了高可用,但是无法实现复杂均衡。
-
2. Nginx + Keepalived + Nacos + Mysql(HA) 搭建生产环境可用的Nacos集群
2.1 前提步骤 - 组建Nacos集群
-
Tips
-
3个或3个以上Nacos节点才能构成集群。
-
建议 (Nginx + Keepalived (*2)) + Nacos(*3 + Mysql), 结合虚拟IP来组建集群。
-
下载并解压 nacos 的jar包后, 直接讲解压后的 nacos 目录 copy 出三份。
-
-
导入初始化脚本
* 找到 conf/nacos-mysql.sql ,将其导入到数据库中。 * 或者从网上下载: https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql
-
配置数据库连接
找到 conf/application.properties ,添加如下内容:
``` # 表明用MySQL作为后端存储 spring.datasource.platform=mysql # 有几个数据库实例 db.num=2 # 第1个实例的地址 db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true # 第2个实例的地址 db.url.1=jdbc:mysql://11.163.152.9:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=nacos_devtest db.password=nacos ```
-
配置集群配置文件
-
在nacos的解压目录 nacos/的conf目录下,有配置文件 cluster.conf,请每行配置成ip:port。(请配置3个或3个以上节点)
# ip:port 200.8.9.16:8848 200.8.9.17:8848 200.8.9.18:8848
-
-
启动集群
-
集群模式
-
使用内置数据源
sh startup.sh -p embedded
-
使用外置数据源
sh startup.sh
-
-
JVM 参数配置
默认配置为: JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
-
Tips: 集群模式中至少三台启动成功了,整个集群才能真正启动成功</
-