Spring Cloud 系列之 Alibaba Nacos 注册中心(二)
- 2020 年 6 月 11 日
- 笔记
- nacos, Spring Cloud, 微服务, 注册中心
本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Alibaba Nacos 注册中心(一)
本篇文章讲解 Nacos 注册中心集群环境搭建。
Nacos 集群环境搭建
集群模式跟我们平时进行扩容是一样的,可以通过 Nginx 转发到多个节点,如下图:
如果为了方便省事,可以使用直连 ip 模式,配置中按如下编写即可:
spring:
# 配置 Nacos 注册中心
cloud:
nacos:
discovery:
enabled: true # 如果不想使用 Nacos 进行服务注册和发现,设置为 false 即可
server-addr: 192.168.10.101:8848,192.168.10.102:8848,192.168.10.103:8848 # Nacos 服务器地址
PS:如果只是为了学习的话直接在本地启动 3 个实例,通过修改端口的方式即可。本文使用三台服务器的方式带大家搭建环境,其实这种方式反而更简单。
环境准备
Nacos 单节点,也就是我们刚才使用的 standalone 模式,默认使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况,0.7 版本以后增加了支持 MySQL 数据源能力。集群搭建的时候我们需要将 Nacos 对接 Mysql 进行数据存储。如果要搭建高可用的集群环境,至少要满足以下条件:
-
JDK 1.8+; -
Maven 3.2.x+; -
MySQL 5.6.5+(生产使用建议至少主备模式,或者采用高可用数据库); -
3个或3个以上Nacos节点才能构成集群。
下载源码或者安装包
可以通过源码和发行包两种方式来获取 Nacos。
源码方式
从 Github 上下载源码方式。
git clone //github.com/alibaba/nacos.git
cd nacos/
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
ls -al distribution/target/
// change the $version to your actual path
cd distribution/target/nacos-server-$version/nacos/bin
发行包方式
您可以从 //github.com/alibaba/nacos/releases 下载最新稳定版本的 nacos-server 包。
配置集群配置文件
将安装包解压。
tar -zxvf nacos-server-1.2.1.tar.gz -C /usr/local/ # 解压文件至 local 目录
在 Nacos 的解压目录 nacos/conf 目录下,复制配置文件 cluster.conf.example 并重命名为 cluster.conf,每行配置成 ip:port。(请配置3个或3个以上节点)
192.168.10.101:8848
192.168.10.102:8848
192.168.10.103:8848
配置 MySQL 数据库
Nacos 在 0.7 版本之前,默认使用的是嵌入式数据库 Apache Derby 来存储数据(内嵌的数据库会随着 Nacos 一起启动,无需额外安装);0.7 版本及以后,增加了对 MySQL 数据源的支持。
MySQL数据源
环境要求:MySQL 5.6.5+(生产使用建议至少主备模式,或者采用高可用数据库);
初始化 MySQL 数据库
创建数据库 nacos_config。
SQL源文件地址://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql ,或者在 nacos-server 解压目录 conf 下,找到 nacos-mysql.sql 文件,运行该文件,结果如下:
application.properties 配置
修改 nacos/conf/application.properties 文件的以下内容。
最终修改结果如下:
#*************** Config Module Related Configurations ***************#
### If user MySQL as datasource:
# 指定数据源为 MySQL
spring.datasource.platform=mysql
Count of DB:
数据库实例数量
db.num=1
数据库连接信息,如果是 MySQL 8.0+ 版本需要添加 serverTimezone=Asia/Shanghai
Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=Asia/Shanghai
db.user=root
db.password=1234


