写在前面的文章
- SpringCloudAlibaba快速入门(1)基于Nacos实现服务注册与发现
- SpringCloudAlibaba快速入门(2)基于Nacos构建分布式配置中心
- SpringCloudAlibaba快速入门(3)Nacos配置多环境管理
- SpringCloudAlibaba快速入门(4)Nacos数据持久化到数据库
官方集群部署说明文档 https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
根据官方文档说明,Nacos的集群架构如下图所示
要搭建 Nacos 集群,则需要对数据进行集中式储存,
这部分操作在上一篇文章(SpringCloudAlibaba快速入门(4)Nacos数据持久化到数据库)中已经介绍,
接下来,我们根据官方文档进行实操。
实战
因为是用于学习,我们没有多台服务器可以使用,
所以本例将在单机上同时启动多个 Nacos 实例,每一个实例使用不同的端口。
启动三个 Nacos 实例构成集群,端口分别为 8848、8849、8850,然后使用 Nginx 对三台 Nacos 进行反向代理
第一步:安装 Mysql 数据库
第二步:初始化数据库
初始化脚本在 Nacos 程序包下的 conf
目录下的 nacos-mysql.sql
文件
第三步:配置 Nacos 数据源
修改 Nacos 程序包下 conf/application.properties
文件,添加 MySQL 数据源配置
文件中有示例,只需要打开注释并修改即可
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3316/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=test
db.password=123456
第四步:配置集群
在 Nacos 程序包的 conf
目录下有一个 cluster.conf.example
文件,复制为 cluster.conf
,内容为
127.0.0.1:8848
127.0.0.1:8849
127.0.0.1:8850
第五步:启动实例
因为本例需要在单机上启动多个 Nacos 实例,只是端口不一样,所以启动实例时,需要设置端口。
复制 startup.cmd
为 startup-8849.cmd
,并设置端口
set "JAVA_OPT=%JAVA_OPT% -Dserver.port=8849"
复制 startup.cmd
为 startup-8850.cmd
,并设置端口
set "JAVA_OPT=%JAVA_OPT% -Dserver.port=8850"
启动三个实例,这样 Nacos 集群已经配置完成,接下来使用 Nginx 进行反向代理。
第六步:配置 Nginx 反向代理
upstream nacosserver {
server 127.0.0.1:8848;
server 127.0.0.1:8849;
server 127.0.0.1:8850;
}
...
server {
listen 8080;
server_name localhost;
location /nacos/ {
proxy_pass http://nacosserver/nacos/;
}
}
这样就可以通过 localhost:8080/nacos
访问 Nacos 后台了。