Nacos集群:2021最新款高可用Nacos服务注册集群搭建

首先我们先来看看架构图:

 

顺序从上面往下面搭建:

1 第一层:Nginx反向代理集群

首先布置两台虚拟机:

  1.  172.20.17.41:8001
  2.  172.20.17.42:8001

1.1 Docker下载nginx

docker pull nginx:1.21.1

1.1.1 运行nginx

可以参考我下面的博客:

https://blog.csdn.net/zuodingquan666/article/details/119332705

1.2.1 下载并配置keepalived

keepalived是一款用于监控的工具,我们可以用来监控nginx的运行状态,nginx集群里面每台keepalived监控一台nginx,如果有一个nginx宕机,那么keepalived同时关闭,其他的keepalived就会承担虚拟端口接收和分发给nginx

yum install keepalived

修改keepalived的配置文件keepalived.conf :

global_defs { 
 notification_email { 
 acassen@firewall.loc 
 failover@firewall.loc 
 sysadmin@firewall.loc 
 } 
 notification_email_from Alexandre.Cassen@firewall.loc 
 smtp_server 172.20.17.41 #部署的主机ip
 smtp_connect_timeout 30 
 router_id LVS_DEVEL 
} 
 
#可有可无
vrrp_script chk_http_port { 
 
 script "/usr/local/killkeepalived.sh" 
 
 interval 2 #(检测脚本执行的间隔) 
 
 weight 200 
 
} 
 
vrrp_instance VI_1 { 
 state BACKUP # 备份服务器上将 MASTER 改为 BACKUP 
 interface ens33 //网卡 
 virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同 
 priority 100 # 主、备机取不同的优先级,主机值较大,备份机值较小 
 advert_int 1 
 authentication { 
 auth_type PASS 
 auth_pass 1111 
 } 
 virtual_ipaddress { 
 172.20.17.20 // VRRP H 虚拟地址  
 } 
} 

1.2.1 运行监控nginx运行的脚本

自己编写的监控nginx运行的脚本,原理就是监控到nginx停止就停止keepalived,让该台nginx退出集群。

shell脚本存放的位置:

/root/shell/startd.sh

脚本代码:

#!/bin/bash

systemctl start keepalived.service

docker start nginx10

docker ps

systemctl status keepalived.service

while [ 1 -eq 1 ]
do

sleep 2

if [ “你自己的容器id” == $(docker ps -q --filter "name=你自己的nginx容器名")  ]
then

 echo "nginx10正在运行" 

else

 killall keepalived
 echo "即将退出"
 break

fi

done

这个脚本就不过多解释了,不懂得直接复制,然后

chmod 777 startd.sh

./stratd.sh

就好了

 以上配置两台服务器都配置一份就好了。

进行了以上两份配置后,我们目前的系统架构如下:

2.配置Nacos集群

首先下载好nacos,这里不推荐用Docker,直接下tar包就好

2.1 安装Nacos

我们下载到/root 目录下,解压到/opt/nacos目录下

tar -zxvf nacos-server-2.0.3.tar.gz -C /opt/nacos

 目录如下:

 我们来看看目录结构:

目录解析:
#bin 这个是启动和关闭nacos的
#conf nacos的配置文件都在里面
#data nacos存放的数据
#logs 启动等行为生产出来的数据

2.2 配置数据库

不懂得可以去看看AP和CP

我们编辑: application.properties

 

在最后面添加以下配置:

#########################databasic######################
spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://8.129.116.23:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

数据库配置也可以在指定的地址配置,都可以。

2.3 配置Nacos集群

先将 cluster.conf.example cp出来

cp  cluster.conf.example  cluster.conf

然后进入,先将原来存在的数据清除,写入我们要配置的三台Nacos的IP地址

172.20.17.11:8848
172.20.17.12:8848
172.20.17.13:8848

就好了

以上在172.20.17.11:8848、172.20.17.12:8848、172.20.17.13:8848三台主机都要配置一遍

2.4 启动Ncaos

在bin目录下:

./startup.sh -p embedded

怎么说呢,在这里不得不说Nacos是真TM占内存,我1GB的内存,启动了3分钟,有兴趣的把JVM调优一下吧。

2.5 查看启动信息

 cat /opt/nacos/logs/start.out

当出现下面这行字时,就代表启动成功了

目前这一层就已经配好了

 

3. 配置反向代理

我们最后一步,就是配置这里:

 

这里主要配置nginx

因为时docker下载的nginx,有些小伙伴或许挂载了文件在主机上,还有的没有挂载,也许有的朋友都没用Docker。

这边统一说是:nginx.conf

 然后再server中:

4.启动集群 

顺序:

先启动Nginx集群,在启动Nacos集群

 

当我访问虚拟IP:172.20.17.20:8001/nacos时:

成功访问。

我们进去看看集群怎么样:

 各个节点都很健康

注:以上省略了jdk和mysql的安装

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值