赞
踩
Raft 算法是一种用于管理复制日志的一致性算法,实现了 CAP 理论中的 CP,同时通过 2PC 来实现日志的 proposal and commit 。下面介绍 Raft 实现的几个主要部分,比如如何选举Leader、如何保证多个节点日志的一致性等。
首先 Raft 协议中,节点分为3中状态。
Leader:
1.处理所有客户端请求。当接收到写请求,封装消息发送到其他 Follower 节点。当有过半节点ACK之后,提交事务。
2.定期向集群中的 Follower 发送心跳,防止 Follower 节点的选举计时器超时而触发新一轮的选举。
Follower:
1.不发送任何一个请求,只是简单的响应来自 Leader 或者 Candidate 的请求。也不响应客户端的请求,
2.将请求重定向给集群的 Leader 节点处理。
3.当客户端连接的不是 Leader 节点,节点会拒绝客户端,并且将它知道的 Leader 节点的信息返回给客户端。
Candidate:
1.当 Follower 选举时间超时,将状态转换为 Candidate ,发起新一轮的选举。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。