1 集群部署
3个或3个以上Nacos节点才能构成集群
(1)安装3个以上Nacos
我们可以复制之前已经解压好的nacos文件夹,分别命名为nacos、nacos1、nacos2
(2)配置集群配置文件
在所有nacos目录的conf目录下,有文件 cluster.conf.example ,将其命名为 cluster.conf ,并将每行配置成ip:port。(请配置3个或3个以上节点)
# ip:port
192.168.222.144:8848
192.168.222.143:8848
192.168.222.145:8848
如果是单机演示,需要更改nacos/的conf目录下application.properties中server.port,防止端口冲突。
# ip:port
127.0.0.1:8848
127.0.0.1:8849
127.0.0.1:8850
如果服务器有多个ip也要指定具体的ip地址,如:nacos.inetutils.ip-address=127.0.0.1
例如:
server.port=8848
nacos.inetutils.ip‐address=127.0.0.1
(3)集群模式启动
分别执行nacos目录的bin目录下的startup:
startup ‐m cluster
2 客户端配置
所有客户端,分别指定nacos集群中的若干节点:
spring:
application:
name: xxxx
cloud:
nacos:
config:
server‐addr: 192.168.222.143:8848,192.168.222.144:8848,192.168.222.145:8848
测试,使用快速上手的例子:
(1)关掉192.168.222.143:8848 nacos Leader实例,发现Leader被成功选举至192.168.222.144:8848
(2)紧接着重新启动Provider,这时马上请求consumer的/service出现错误,发现consumer与provider通信已经出现问题。但经过短暂的时间后,通信恢复。
通过测试,我们可以看到,通过以上的集群部署已经达到了高可用的效果。
3 生产环境部署建议
下图是官方推荐的集群方案,通过域名 + VIP模式的方式来实现。客户端配置的nacos,当Nacos集群迁移时,客户端配置无需修改。
至于数据库,生产环境下建议至少主备模式。通过修改${nacoshome}/conf/application.properties文件,能够使nacos拥有多个数据源。
spring.datasource.platform=mysql
db.num=2
db.url.0=jdbc:mysql://192.168.222.130:3306/nacos_config?characterEncoding=utf8&autoReconnect=true
db.url.1=jdbc:mysql://192.168.222.131/nacos_config?characterEncoding=utf8&autoReconnect=true
db.user=root
db.password=123456