给出总结:
访问nginx是随机访问某一台nacos注册中心 注册是注册到所有注册中心上 每一台上都有
踢下线某一台之后 那台还能正常工作cluster.conf 上还是显示三台记录 但是其他台cluster.conf 上已经没有该台的记录了 但是通过nginx负载均衡分发到不同服务器上 还能注册到该被踢下线的服务器
提出问题:
因为Nginx随机转发到某一台上 如果注册到某一台已经下线的nacos上应该咋办 ?? 求指点 如果以后我知道该咋办我会修改这篇博文~
答:注册到了也没关系 (这里是能注册到某台下线的nacos上的)因为其他集群还活着能正常作为注册中心
三台服务器上的搭建
- 修改cluster.conf application.properties
cluster.conf
每台服务器都要改xxx.xxx.xxx:8848 # 第一台 xxx.xxx.xxx:8848 # 第二台 xxx.xxx.xxx:8848 # 第三台
application.properties
(ps: 由于Nacos默认内网访问 若要公网部署就必须改改配置文件指定ip)同样是每台服务器都要改
### Specify local server's IP: nacos.inetutils.ip-address=你的服务器公网ip ### Connect URL of DB: db.url.0=jdbc:mysql://你的服务器公网ip:3306/数据库名?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user.0=nacos # 数据库账号 db.password.0=2rMSinPXifsT3kNr #数据库密码
- 启动命令:
sh startup.sh
启动三台 - 效果:
配置Nginx转发 (即消费端服务端—->随机注册到某一台nacos)
upstream mycluster{
server ip:8848 ;
server ip:8848;
server ip:8848;
}
server
{
listen 81;
server_name localhost;
location / {
root html;
index index.html index.htm;
proxy_pass http://mycluster; # 对应上面地址
}
}
访问:Nginx端口 记得加上/nacos
成功
测试 消费端和服务端分别提供Nginx注册到不同的注册中心上:
还是那个问题 如果访问到 没注册的注册中心就会报错 ~~
已解决~
节点下线
其他的活着的集群会把死掉的Nacos机器踢下线 死了的Nacos不会自己踢除自己
死掉的集群再次上线 需要在其他集群的配置文件把该nacos加上