🚀 优质资源分享 🚀
学习路线指引(点击解锁) | 知识定位 | 人群定位 |
---|---|---|
🧡 Python实战微信订餐小程序 🧡 | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |
💛Python量化交易实战💛 | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |
目录* Paxos
Paxos
Paxos算法是莱斯利·兰伯特于1990年提出的一种基于消息传递的一致性算法。
Raft(Understandable Distributed Consensus)
论文:https://raft.github.io/raft.pdf
算法演示网址:http://thesecretlivesofdata.com/raft/
Raft是一种共识算法,旨在替代Paxos。
它通过逻辑分离比Paxos更容易理解,但它也被正式证明是安全的,并提供了一些额外的功能。
Raft提供了一种在计算系统集群中 分布状态机 的通用方法,确保集群中的每个节点都同意一系列相同的状态转换。
问题分解
问题分解是将 “复制集中节点一致性" 这个复杂的问题划分为数个可以被独立解释、理解、解决的子问题。
在raft,子问题包括,leader election, log replication,safety,membership changes。
状态简化
对算法做出一些限制,减少需要考虑的状态数,使得算法更加清晰。
raft会先选举出leader,leader完全负责replicated log的管理。
leader负责接受所有客户端更新请求,然后复制到follower节点,并在“安全”的时候执行这些请求。
名词介绍
Raft将系统中的角色分为领导者(Leader)、跟从者(Follower)、候选人(Candidate)以及term( Raft算法将时间分为一个个的任期)。
Raft要求系统在任意时刻最多只有一个Leader,正常工作期间只有Leader和Followers。
Raft算法角色状态转换如下: