2c09c340e57a4963ba60fdc0d809db8b

给出总结:

访问nginx是随机访问某一台nacos注册中心 注册是注册到所有注册中心上 每一台上都有

踢下线某一台之后 那台还能正常工作cluster.conf 上还是显示三台记录 但是其他台cluster.conf 上已经没有该台的记录了 但是通过nginx负载均衡分发到不同服务器上 还能注册到该被踢下线的服务器

提出问题: 因为Nginx随机转发到某一台上 如果注册到某一台已经下线的nacos上应该咋办 ?? 求指点 如果以后我知道该咋办我会修改这篇博文~

答:注册到了也没关系 (这里是能注册到某台下线的nacos上的)因为其他集群还活着能正常作为注册中心

img

三台服务器上的搭建

  • 修改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 启动三台

  • 效果:image-20220105014258861

配置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

image-20220105014706830

成功

测试 消费端和服务端分别提供Nginx注册到不同的注册中心上:

image-20220105205511085

image-20220105015855829

image-20220105020019968

还是那个问题 如果访问到 没注册的注册中心就会报错 ~~

image-20220105020135576

节点下线

image-20220105204651045

image-20220105204625433

image-20220105204748994

image-20220105204814980

其他的活着的集群会把死掉的Nacos机器踢下线 死了的Nacos不会自己踢除自己

死掉的集群再次上线 需要在其他集群的配置文件把该nacos加上