【SpringCloud】Nacos集群搭建
集群结构图
官方给出的Nacos集群图如下:
其中包含3个nacos节点,然后一个负载均衡器代理3个Nacos。这里负载均衡器可以使用nginx。
我们接下来要尝试 Nacos集群搭建,效果图如下所示:
三个nacos节点的地址:
节点 | ip | port |
nacos1 | localhost | 8845 |
nacos2 | localhost | 8846 |
nacos3 | localhost | 8847 |
搭建集群
搭建集群的基本步骤:
搭建数据库,初始化数据库表结构
下载nacos安装包
配置nacos
启动nacos集群
nginx反向代理
1.初始化数据库
按照上图所示,需要搭建3个MySQL,形成主-从结构。
不过这个案例并没有数据读写的情况,但是在集群配置的时候nacos中的application.properties需要配置数据库名,所以这里创建一个名为 nacos的数据库即可!!!
2.下载nacos
nacos在GitHub上有下载地址:https://github.com/alibaba/nacos/tags,可以选择任意版本下载。
本例中才用1.4.1版本:
3.配置Nacos
将这个包解压到任意非中文目录下,如图:
解压后的目录:
目录说明:
bin:启动脚本
conf:配置文件
进入nacos的conf目录,修改配置文件cluster.conf.example,重命名为cluster.conf:
然后添加内容:
127.0.0.1:8845
127.0.0.1.8846
127.0.0.1.8847
然后修改application.properties文件,添加数据库配置
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=888888
4.启动
将nacos文件夹复制三份,分别命名为:nacos1、nacos2、nacos3
然后分别修改三个文件夹中的application.properties
nacos1:
server.port=8845
nacos2:
server.port=8846
nacos3:
server.port=8847
然后分别启动三个nacos节点:
startup.cmd
5.nginx反向代理
修改conf/nginx.conf文件,配置如下:
upstream nacos-cluster {
server 127.0.0.1:8845;
server 127.0.0.1:8846;
server 127.0.0.1:8847;
}
server {
listen 80;
server_name localhost;
location /nacos {
proxy_pass http://nacos-cluster;
}
}
而后在浏览器访问:http://localhost/nacos即可。
代码中application.yml文件配置如下:
spring:
cloud:
nacos:
server-addr: localhost:80 # Nacos地址
代码中bootstrap.yml文件配置如下:
# 优先级比 application 高!!!
spring:
application:
name: userservice
profiles:
active: dev # 环境
cloud:
nacos:
server-addr: localhost:80 # nacos地址
config:
file-extension: yaml #文件后缀名
6.使用Windows脚本快速启动!!!
@echo off
start cmd /k "cd/d D:\NacosCluster\nacos1\bin &&startup.cmd"
start cmd /k "cd/d D:\NacosCluster\nacos2\bin &&startup.cmd"
start cmd /k "cd/d D:\NacosCluster\nacos3\bin &&startup.cmd"
start cmd /k "cd/d D:\NacosCluster\nginx-1.18.0\nginx-1.18.0 &&start nginx.exe"
echo end
7.访问nacos集群
启动完成后,访问网页:localhost:80/nacos