nacos 集群部署
1. 要求
需要 Nacos 节点对外暴露 8848 与 7848 端口。其中 8848 端口的作用是对外暴露 API 与集群间数据同步,而 7848 端口则用于节点选举来确定集群领袖(Leader)。同时 Nacos 在集群环境下需要持久化应用配置、用户权限、历史信息等内置数据,因此需要额外部署 MySQL 数据库提供统一存储。
2.环境准备。
Nacos 因为采用raft选举算法,由于它的特殊性,要求最少三个节点才能组成一个有效的集群。
3. 配置数据库
在MySQL下nacos库中执行以下sql语句
/data/nacos/conf/nacos-mysql.sql
表名称 | 解释说明 |
config_* | 所有 config_ 开头的表都是 Nacos 配置中心使用时保存应用配置的表 |
users | 系统用户表,在集群环境下用户信息保存在 users 表中,而非在配置文件中 |
roles | 系统角色表,Nacos 的权限基于 RBAC(基于角色的访问控制)模型设计,此表保存角色数据 |
permissions | 系统权限表,说明角色与系统使用权限的对应关系 |
4.配置nacos数据源
依次打开各个节点的 /data/nacos/conf/application.properties 这个文件
### Count of DB: 数据库总数
db.num=1
### Connect URL of DB: 数据库连接,根据你的实际情况调整
db.url.0=jdbc:mysql://10.17.20.14:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=root
5. 配置Nacos 集群节点
在 /nacos/config 目录下提供了集群示例文件cluster.conf.example
user@user-PC:/data/nacos/conf$ cp cluster.conf.example cluster.conf
user@user-PC:/data/nacos/conf$ vim cluster.conf
10.17.20.14:8848
10.17.20.148:8848
10.17.20.158:8848
6. 分别启动各个节点
user@user-PC:/data/nacos/bin$ sh
注意:集群模式下并不需要增加“-m”参数,默认就是以集群方式启动。
7. 查看日志
tail -1000f /data/nacos/logs/start.out
tail -1000f /data/nacos/logs/nacos.log
8. 验证所有节点是否启动成功
http://10.17.20.14:8848/nacos/#/clusterManagement?dataId=&group=&appName=&namespace=
UP 代表节点已就绪,DOWN 代表节点已离线,目前所有节点均已就绪。
9. spring cloud alibaba 接入
在 application.properties 配置 Nacos 集群的任意节点都可以完成接入工作,Nacos 内置的数据同步机制会保证各节点数据一致性。
# 配置 192.168.163.131/132/133 都可以接入 Nacos
spring.cloud.nacos.discovery.server-addr=10.17.20.14:8848,10.17.20.148:8848,10.17.20.158:8848