Raft算法的原理与实现

Raft###简单介绍 分布式一致性算法, 由于Paxos难于理解,和落地,Raft被设计出来的目的就是尽可能的简单 Raft把问题拆分成Leader election, log replication, Safety.###基础* Raft集群一般有5个节点,允许2个失败。* 每个node有3个状态,follower,candidate,leader。* Followers不会主动的请求其他节点,只答复candidate,leader的请求。* leader处理所有客户端请求,follower可以转发来自客户端的请求。* Raft算法的原理与实现_第1张图片* Term: 版本控制的机制,当逻辑锁来使用,判断leader是否有效* Raft内部有3种RPC 1. RequestVote 2. Append-Entrie 3. transferring snapshots###Leader election###Log ReplicationRaft维护高度的日志同步,不仅因为简单,而且还安全>Leader Append-Only: a leader never overwrites or deletes>entries in its log; it only appends new entries. §5.3>Log Matching: if two logs contain an entry with the same>index and term, then the logs are identical in all entries>up through the given index. §5.3简单的一致性检查:AppendEntries包含prevLogIndex(上一次的处理的log entry index), 如果follower找不到,返回false

转载于:https://my.oschina.net/u/3429856/blog/3024232

你可能感兴趣的:(Raft算法的原理与实现)