前言
Nacos被越来越广泛的应用,简单的单击模式只适用于测试和单机的使用,但是用在生产上就万万不可靠了,Nacos官方支持三种部署模式:
- 单击模式-用于测试和单击试用
- 集群模式-用于生产环境,确保高可用
- 多集群模式-用于多数据中心场景
今天我们来尝试搭建Nacos的集群模式。
在搭建之前我们首先要了解的是,nacos使用了嵌入式数据库实现数据的存储,即自身带的数据库derby作为数据存储,这样的话数据并不安全,并且如果启动多个默认配置下的nacos节点,数据存储也存在一致性的问题。为了解决这个问题,nacos采用了集中式存储的方式来支持集群化部署,目前只支持Mysql的存储。意思就是说,集群环境搭建好后,多个nacos节点共用一个mysql数据库。
准备
准备好至少三台服务器,1 nginx+ 3 nacos+ 1 mysql
每台nacos服务器上都需要有JDK环境的支持。
1、安装好JDK环境:JDK安装
2、安装好MySQL:Mysql安装
3、安装好nginx:Nginx安装
3、准备Nacos安装包
Nacos下载地址:下载地址
安装
我的nacos放在了 /usr/local/nacos 目录下了,执行解压缩:
解压
tar -zxvf nacos-server-1.1.4.tar.gz
查看目录:
集群环境搭建
MySQL数据库配置
进入nacos官网,找到集群搭建对应的mysql执行语句
https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
复制执行语句源文件,在自己的mysql服务器中执行,用来新建自己的nacos集群使用的数据库。
打开config_info表,会发现目前为空。
集群环境配置
三台nacos服务器都需要进行以下操作
1、拷贝文件
进入配置文件目录,找到cluster.conf文件和application.properties文件,并拷贝
cd conf/
cp cluster.conf cluster.conf.bk
cp application.properties application.properties.bk
2、文件配置
cluster.conf文件中进行集群环境配置
vim cluster.conf
application.properties文件中进行数据库的配置
vim application.properties
在文件的最后,写明nacos集群需要使用的数据库地址,以及账号密码。
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.237.148:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
3、启动三台 nacos服务
cd ..
cd bin/
ls
启动命令
./startup.sh
停止命令
./shutdowm.sh
启动成功之后访问三台服务地址:http://服务ip:8848/nacos,查看效果:
可以看到三个节点成功启动,并且使主从机制。
nginx虚拟ip地址配置
三台nacos,我们在项目中全部配置是非常麻烦的,不便于维护,这里我们引入nginx做反向代理,进行一个虚拟ip的映射,这样就可以项目中只访问一个虚拟地址,路由到nginx,由nginx为我们做负载访问具体的nacos服务。
修改nginx配置文件nginx.conf
vim nginx.conf
使用nginx地址进行访问:http://192.168.237.148:1111/nacos
配置成功
测试
我们在界面上手动添加配置文件,查看数据是否存放到mysql中。
可以看到数据已经入库。
我们启动项目,再次进行测试访问:
访问结果,拿到数据: