一、Nacos集群部署架构
在实际开发过程中,如果使用Nacos的话,为了确保高可用,我们一般都会对其进行集群的部署。Nacos规定集群中Nacos节点的数量需要大于等于3个;同时,单机模式下Nacos的数据默认保存在其内嵌数据库中,不方便观察数据存储的基本情况。而且如果集群中启动多个默认配置下的Nacos节点,数据存储是存在一致性问题的。为了解决这个问题,Nacos采用了集中式存储的方式来支持集群化部署,目前只支持MySQL的存储;此外,我们还需要借助Nginx实现负载均衡。这一过程的部署架构图如下所示:
二、切换Nacos的默认数据库
(1)在开始搭建集群之前,我们需要先将Nacos的默认数据库derby切换成mysql。
首先启动本机mysql,创建nacos_config数据库,并在nacos_config数据库下执行nacos-mysql.sql脚本,如下图所示:
执行成功后,查看创建好的数据表:
(2)我的Nacos是直接解压在 /opt 路径下的,找到并修改 /opt/nacos/conf 路径下的application.properties文件,将以下内容直接粘贴到application.properties的最后面(注意db.user和db.password要修改成自己mysql的用户名和密码):
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
三、修改Nacos的集群配置
(1)同样的在 /opt/nacos/conf目录下,找到并修改cluster.conf 文件,如下图所示:
(2)在 /opt/nacos/bin 目录下,找到并修改 startup.sh 文件,需要修改的地方如下图所示:
① 修改前:
修改后:
② 修改前:
修改后:
修改完成后,在 /opt/nacos/bin 路径下可以使用如下命令,启动对应端口号的nacos节点:
四、配置Nginx实现负载均衡
(1)找到并修改 /usr/local/nginx/conf 路径下的 nginx.conf 文件,需要修改的地方如下图所示(为了演示方便,这里就不再搭建 nginx 的集群了,只以一个 nginx 为例进行说明):
五、测试效果
(1)先启动 nginx,再依次启动3333、4444、5555的 nacos 节点
(2)关闭 linux 本地的防火墙或者开放 linux 上需要被访问的对应端口号
(3)比如我的 linux 的 ip是 192.168.1.103,因此在Windows上访问 192.168.1.103:1111/nacos 即可成功访问nacos的界面(这里是1111是因为刚刚在 nginx 的配置文件中暴露的端口号是1111)。
(4)在 nacos 的界面中新建配置信息:
(5)在 linux 的 mysql 中可以查看刚刚新建的配置信息:
(6)至此,Nacos集群+MySQL集中式存储+Nginx负载均衡就搭建成功了。