Docker容器部署Nacos高可用集群(详细,可跟做)

一、理论知识

1、集群选举原理

1、节点状态和角色:

  • Leader(领导者)
    • 负责状态管理:Leader负责管理整个集群的状态,包括配置更新、服务注册和发现等。
    • 处理客户端请求:所有的客户端写请求必须经过Leader处理,Leader会负责将这些请求复制到其他节点,确保数据一致性。
    • 心跳检测:Leader定期发送心跳信号给Follower,以确认集群中所有节点的状态。
    • 日志复制:Leader将接收到的客户端写请求复制到其他节点(Follower)上,确保数据的持久化和一致性。
  • Follower(跟随者):
    • 接收日志条目:Follower从Leader接收复制的日志条目,保持自己的数据与Leader一致。
    • 响应客户端读请求:Follower可以响应客户端的读请求,但是写请求必须转发给Leader处理。
    • 参与选举:Follower可以成为Candidate参与选举过程,以便在Leader失效时选举出新的Leader。
  • Candidate(候选者):
    • 发起选举:当一个节点认为当前的Leader失效时,它会变成Candidate,并向其他节点发起选举请求。
    • 获得选票:候选者需要集群中过半数节点的投票才能成为新的Leader。
    • 参与心跳检测:在选举期间,Candidate也会参与心跳检测,以确保集群中没有活跃的Leader。

2、Leader选举机制:

在初始启动或者发生Leader节点故障时,集群需要选举一个新的Leader。候选者节点通过投票来决定新的Leader。

3、投票机制:

候选者向其他节点发送选举请求,其他节点如果同意,则将自己的投票给候选者。候选者需要获得集群中过半数节点的投票才能成为新的Leader。

4、数据同步机制:

Nacos采用Raft算法作为其核心的一致性协议,确保在分布式环境下各个节点之间的数据强一致性。Raft算法通过选举Leader节点来处理数据更新请求,并同步到Follower节点,从而实现集群节点间的数据同步。

2、高可用集群架构图

在这里插入图片描述

  • Nacos集群连接一套MySQL数据库
  • 通过Nginx二级代理Nacos集群
  • 微服务程序连接Nacos可写为NginxIP/nacos,nginx会负载到三台Nacos集群中,当然如果程序支持连接Nacos集群,可直接配置连接Nacos集群,就不过一层Nginx了。

3、环境信息

1、服务器信息:

序号 IP地址 安装服务
1 16.32.15.200 Nacos、Docker、docker-compose
2 16.32.15.201 Nacos、Docker、docker-compose
3 16.32.15.115 Nacos、Docker、docker-compose、MySQL、Nginx

2、中间件版本信息:

序号 中间件名称 版本
1 Nacos v2.3.2
2 MySQL 8.0.38
3 Nginx 1.20.1
4 Docker 26.1.4

二、实现步骤

1、部署Docker环境

1、前提环境准备

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

2、配置阿里云Yum源

yum -y install yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3、安装Docker

yum install docker-ce docker-ce-cli containerd.io -y

4、配置国内镜像加速地址

mkdir -p /etc/docker

tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://aoewjvel.mirror.aliyuncs.com"]
}
EOF

5、启动并加入自启动

systemctl start docker
systemctl enable docker

6、查看版本

docker --version

2、部署docker-compose环境

1、下载docker-compose(官方的,下载较慢)

curl -L "https://github.com/docker/compose/releases/download/v2.10.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2、赋予执行权限

chmod +x /usr/local/bin/docker-compose

3、查看版本

docker-compose --version

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神奇的海马体

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值