如何做好网站关键词布局,做app挣钱还是网站,cctv5+手机在线直播观看,东莞北京网站建设Paxos 算法
介绍
Paxos 算法是第一个被证明完备的分布式系统共识算法。共识算法的作用是让分布式系统中的多个节点之间对某个提案#xff08;Proposal#xff09;达成一致的看法。提案的含义在分布式系统中十分宽泛#xff0c;像哪一个节点是 Leader 节点、多个事件发生的…Paxos 算法
介绍
Paxos 算法是第一个被证明完备的分布式系统共识算法。共识算法的作用是让分布式系统中的多个节点之间对某个提案Proposal达成一致的看法。提案的含义在分布式系统中十分宽泛像哪一个节点是 Leader 节点、多个事件发生的顺序等等都可以是一个提案。
兰伯特当时提出的 Paxos 算法主要包含 2 个部分:
Basic Paxos 算法描述的是多节点之间如何就某个值(提案 Value)达成共识。Multi-Paxos 思想描述的是执行多个 Basic Paxos 实例就一系列值达成共识。Multi-Paxos 说白了就是执行多次 Basic Paxos 核心还是 Basic Paxos 。
由于 Paxos 算法在国际上被公认的非常难以理解和实现因此不断有人尝试简化这一算法。
Basic Paxos 算法
Basic Paxos 中存在 3 个重要的角色
提议者Proposer也可以叫做协调者coordinator提议者负责接受客户端的请求并发起提案。提案信息通常包括提案编号 (Proposal ID) 和提议的值 (Value)。接受者Acceptor也可以叫做投票员voter负责对提议者的提案进行投票同时需要记住自己的投票历史学习者Learner如果有超过半数接受者就某个提议达成了共识那么学习者就需要接受这个提议并就该提议作出运算然后将运算结果返回给客户端。 为了减少实现该算法所需的节点数一个节点可以身兼多个角色。并且一个提案被选定需要被半数以上的 Acceptor 接受。这样的话Basic Paxos 算法还具备容错性在少于一半的节点出现故障时集群仍能正常工作。
Multi Paxos 思想
Basic Paxos 算法的仅能就单个值达成共识为了能够对一系列的值达成共识我们需要用到 Basic Paxos 思想。
⚠️注意Multi-Paxos 只是一种思想这种思想的核心就是通过多个 Basic Paxos 实例就一系列值达成共识。也就是说Basic Paxos 是 Multi-Paxos 思想的核心Multi-Paxos 就是多执行几次 Basic Paxos。
由于兰伯特提到的 Multi-Paxos 思想缺少代码实现的必要细节(比如怎么选举领导者)所以在理解和实现上比较困难。
不过也不需要担心我们并不需要自己实现基于 Multi-Paxos 思想的共识算法业界已经有了比较出名的实现。像 Raft 算法就是 Multi-Paxos 的一个变种其简化了 Multi-Paxos 的思想变得更容易被理解以及工程实现实际项目中可以优先考虑 Raft 算法。
作者声明
如有问题欢迎指正