十三、Nacos集群部署

前面已经学习了Nacos的注册中心功能以及分布式配置中心的各个功能。
在前一节我们知道了如何实现Nacos的数据持久化(其实在安装的时候就有涉及到)。
前面为了方便演示和测试,使用的都是单机版,而没有实现集群搭建。
但是在分布式架构中,微服务解决方案里,都是要满足三大特性:高并发,高性能,高可用。
所以,单机版本的Nacos(注册中心&配置中心)已经不够满足实际场景了,所以本节来搭建一个Nacos集群。

集群部署架构图

我们看看nacos官网的介绍:

因此开源的时候推荐用户把所有服务列表放到一个vip下面,然后挂到一个域名下面

http://ip1:port/openAPI 直连ip模式,机器挂则需要修改ip才可以使用。

http://VIP:port/openAPI 挂载VIP模式,直连vip即可,下面挂server真实ip,可读性不好。

http://nacos.com:port/openAPI 域名 + VIP模式,可读性好,而且换ip方便,推荐模式

预备环境

  1. 64 bit的 linux/unix/mac,推荐使用Linux。
  2. 64 bit的 JDK 1.8+。
  3. Maven 3.2.x+。
  4. 3个或3个以上Nacos节点才能构成集群。

单机部署集群

我们准备已经下载好的Nacos压缩包,并解压,配置好mysql数据连接(可参考前一节)。

在Nacos的conf 目录下有一个cluster.conf.example , 可以直接把.example 去掉使用,也可以单独创建一个cluster.conf文件,用于后续搭建集群的实例地址配置。

我们打开cluster.conf, 删除默认配置,添加下述配置:

1
2
3
4
#it is ip
192.168.1.104:8085
192.168.1.104:8086
192.168.1.104:8087

需要保证部署3个或3个以上节点,这样才能搭建成集群。注意ip不可填写127.0.0.1,必须是内网ip,否则在nacos.log中会报

1
java.lang.IllegalStateException: unable to find local peer

修改完cluster.conf之后,我们将bin/startup.sh 复制三份,分别命名为:

1
2
3
startup-8085.sh
startup-8086.sh
startup-8087.sh

然后分别打开这三个文件,进行修改,如下:

我们可以看到:

  1. 设置相应的启动端口。
  2. 如果内存不够,设置不同的内容。

8087就不展示了,分别启动

1
2
3
sh startup-8085.sh
sh startup-8086.sh
sh startup-8087.sh

然后选择其中一个端口进行登录,可以看到集群管理的节点列表中就有了节点信息,可以看到节点状态。如下图:

192.168.1.104:8087 为leader节点,192.168.1.104:8085/8086 为Follower节点。

生产部署集群

生产环境部署集群,无非就是将不同的节点部署到不同的服务器上,这样不会因为一台服务器宕机而导致整个Nacos集群不可用。

第一步:修改cluster.conf文件,三个节点均需要配置

1
2
3
120.79.167.88:8848
119.23.104.130:8848
47.101.47.127:8848

第二步:修改application.properties 文件,配置数据源,三个节点均要

1
2
3
4
5
spring.datasource.platform = mysql
db.num = 1
db.url.0 = jdbc:mysql://120.79.167.xxx:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=pwd

第三步:分别启动每个节点的startup.sh

1
sh startup.sh

注意:如果服务器内存不足,需要先修改startup.sh .

结果如图:

依照上述的配置,如果没有部署成功,请看下一节【Nacos集群部署异常】。我自己按照上述的生产部署也没有成功。

#

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×