对 Paxos算法 和 Raft算法 的简单理解

您所在的位置:网站首页 paxos算法用于解决 对 Paxos算法 和 Raft算法 的简单理解

对 Paxos算法 和 Raft算法 的简单理解

2023-10-15 12:51| 来源: 网络整理| 查看: 265

文章目录 1 Paxos算法1.1 用途1.2 模型1.2.1 无主模型1.2.2 有主模型 2 Raft 算法2.1 用途2.2 核心思想2.3 角色分配2.4 特点

1 Paxos算法 1.1 用途

Paxos算法是用于 解决分布式一致性问题的,即一个分布式系统中的各个进程 是如何就某个值达成一致的。

1.2 模型 前提: 在一个小岛上,议员数量固定不可变。 每一个提议都有固定编号,编号保持增长,且不可回退。 每个议员只会同意大于自身记录的提议编号的新提议。 1.2.1 无主模型 场景:某个议员收集到新提议,向所有议员发起投票,若投票过半,则通过。 问题: (1)每个议员都有权利发起投票,同时发起的投票ID相同,会导致冲突。 (2)若议员数量是偶数,容易发生“死锁”。 (3)多议员之间的信息未必同步,相互同步次数不可预测。 1.2.2 有主模型

场景:选出一个Leader,负责发起投票 ,充当数据同步的样本。不仅解决了提议ID冲突的问题,也解决了数据同步问题。 选举规则: 初次选举:根据设备ID选举。先启动的设备ID大,选取ID大的设备作为Leader。投票过半即可。 后续选举:根据事务ID和设备ID选举。给事务ID和设备ID 都比自己大的设备投票。 问题: (1)节点过多,虽然业务处理能力强,但选举效率低。 可限制参与选举和投票的节点数量。 (2)若同时存在多主,即发生“脑裂”。

2 Raft 算法 2.1 用途 用于 管理日志一致性的 算法。 2.2 核心思想 在分布式系统中,通过副本来实现数据的安全性。如何实现多个副本的一致性呢? 通过日志来实现,将相同的日志在不同的设备上执行,会得到相同的结果。 2.3 角色分配 Leader 领导者:负责与客户端的交互,日志复制。同一时刻只能存在一个。 Candidate 候选人:仅存在于选举阶段。跟随者想参与竞选,会转变为候选人。 Follower 跟随者:普通节点。村民。 2.4 特点

(1)任期 每一届领导者会有唯一的任期标识。若选举失败,直接开始下一个任期和新一轮选举。 (2)日志复制 Leader 将所有操作记录到日志里,通过心跳机制转发给Follower ,从而实现最终结果一致性。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3