【分布式】图解Raft协议

本文深入解析分布式共识问题及其解决方案——Raft协议,详细介绍了Leader选举和日志复制的过程,帮助理解如何在分布式环境中实现一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、分布式共识(Distributed Consensus)

当系统中只有1个节点(下图蓝色,你可以理解为一个存储数据的数据库)。如果客户端(绿色)发送1个x=8的数据给数据库,数据库会立即将X更改为8。由于只有1个数据库节点,对于X的值,很快就会达成一致:x=8。

But,如果有多个数据库节点呢?如图,假设3个数据库节点中x的值都为7。客户端发送更改x=8 的请求,3个数据库节点有2个节点更新成功,x=8;另一个节点更新失败,存储的x仍然是7。这样就会出现对于同一个变量x的值,3个节点存储的数值不一样。这就是分布式共识的问题。
在这里插入图片描述

二、分布式共识解决方案 - Raft协议

Raaft是用来解决分布式共识的一种协议。Raft协议中定义了3种角色:

  • Follower
  • Candidate
  • Leader
    在这里插入图片描述

首先我们简单介绍下Raft协议中最重要的两个部分:Leader选举和日志复制两个过程。

1、Leader选举过程(Leader Election)

每个节点初始状态都是跟随者Follower。当一个Follower节点不再听从Leader节点,那么该节点就会变为候选者Candidate。

紧接着,候选者节点会发送投票请求给所有节点,请求他们给自己投票,让自己当选为Leader节点,每个节点收到该请求之后就会返回投票响应。如果候选者节点获取到了大部分节点的投票,那么他就成为了新的Leader。

这个过程如下(左下角节点为Candidate节点,发起投票,收到大部分节点响应之后成为Leader节点):

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值