目标:Nacos的高可用部署
工具:XShell、云服务器(或者虚拟机)、Nacos安装包
学习目标:部署Nacos
Nacos的高可用部署
Nacos提供了类似于ZooKeeper的集群架构,包含一个Leader和多个Follower节点,不同点就是他们的数据一致性算法不一样。
- 安装环境要求
- 64 bit OS Linux/Unix/Mac,推荐使用Linux系统。
- 64 bit JDK 1.8+; 具体操作见:https://segmentfault.com/a/1190000015389941
- Maven 3.2.x+;(这里暂时用不到)
- 3个或3个以上Nacos节点才能构成集群。
- 安装包及环境准备
准备三台服务器,我这里准备了Centos7.x系统
我这里用的是最新的安装包:nacos-server-1.2.1.tar.gz
官网下载链接: https://github.com/alibaba/nacos/releases
下载安装包,分别进行解压
tar -zxvf nacos-server-1.2.1.tar.gz 或者 unzip nacos-server-1.2.1.zip
如果unzip 无法使用 请执行 yum install -y unzip zip
解压后会得到五个文件夹:bin(服务启动/停止脚本)、conf(配置文件)、logs(日志)、data(derby数据库存储)、target(编译打包后的文件)
集群配置
在conf目录下需要关注一下几个文件:
- application.properties:SpringBoot项目默认配置文件
- cluster.con.example:集群配置样例文件
- nacos-mysql.sql:Mysql数据库脚本.Nacos支持Derby和MySql两种持久化机制,默认采用Derby数据库。如果采用Mysql,需要运行改脚本创建数据库和表
- nacos-logback-xml:Nacos日志配置文件
配置Nacos集群需要用到cluster.conf文件(上面的样例文件去掉**.example**后缀):
配置信息如下:(填写你的服务器地址和端口号8848)
xx.xx.xx.xx:8848
xx.xx.xx.xx:8848
xx.xx.xx.xx:8848
这三台机器中的cluster.conf配置保持一致。由于这三台机器之前需要比彼此通讯,所以需要在部署的时候需要防火墙对外开放8848端口。具体操作如下(对于centos7.x而言)
firewall-cmd --zone=public --add-port=8848/tcp --permanent
firewall-cmd --reload
配置MySQL数据库(mysql版本必须在5.6.5+)
数据库安装见: https://juejin.im/post/5d65fafd6fb9a06aec264eb0
去到你的一台服务器中创建一个新的数据库名字叫:nacos_config
执行nacos-mysql.sql初始化
分别修改3台机器中的nacos\conf下的application.properties文件,增加MySQL的配置
datasource: spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_config?
characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root db.password=root
启动服务
分别进入3台机器的安装目录下的bin目录,执行sh startup.sh 启动命令
启动成功后,在nacos安装目录下执行cat logs/start.out 获取日志信息,查看是否成功
随便启动访问任意一台机器的 http://xx.xx.xx.xx:8848/nacos 账号密码均为:nacos
访问Nacos控制台,在"节点列表"下可以看如下图的信息,表示当前集群由那些节点组成及节点状态。
拜拜谢谢观看!
评论区