阅读了一个有意思的ppt,是Standford大学发表的raft协议

网址:http://thesecretlivesofdata.com/raft/

下面自己总结下咯:

1.raft是一个实现了解决分布式一致性问题的协议

2.分布式环境下的每个节点有三种状态:

  follower

  candidate

  leader

3.所有的节点开始都是follower状态

一旦他们不能检测到leader就能成为candidate

candidate会请求其他节点投票,得到大多是节点的投票就会成为leader,这个过程叫做Leader Election

4.节点的每个改变都会增加节点的日志条目,提交之后leader会复制日志条目到从节点上,在大多数从节点成功增加日志条目之后,提交成功,leader值更新,leader通知从节点已经更新成功,从节点更新数据,这个过程叫做Log Replication。

5.Leader Election

Raft有两个timeout设置来控制选举

第一个是election timeout

  election timeout指的是follower等待成为candidate的时间,在150ms到300ms之间

  election timeout一个follower成为一个开始一个election term

  投票给自己,请求其他节点投票,在得到大多数节点投票之后,重置election timeout,成为leader

第二个是HearBeat timeout

  Append Entries 在HeartBeat timeout时发送

6.Log Replication

Log Replicaiton是通过HeartBeat timeout发送Append Entries来完成的

  客户端发送更新请求

  leader增加日志条目

  在下个HeartBeat时,日志变化发给follower

  在大多数从节点成功之后,leader提交数据并响应客户端

  下次HeartBeat Timeout之后,从节点数据更新

后面还有分片的集群可保持一致性,自己看吧

最新文章

  1. 调试asp.net网页时不显示treeview的原因
  2. 通过ios实现RSA加密和解密
  3. phongap、APICloud、ionic等app开发平台你都知道吗?
  4. ImageJ 学习第一篇
  5. 【SVN】Error running context: 由于目标计算机积极拒绝,无法连接
  6. dex分包变形记
  7. 微信小程序中rpx与rem单位使用
  8. RedHat linux配置yum本地资源
  9. 如何在命令行下运行kettle的作业(job)和转换(transform)
  10. oracle 主键自增
  11. 九度OJ 1451 不容易系列之一 -- 动态规划
  12. Microsoft SQL Server 2008 安装图解(Windows 7)
  13. shell脚本实现查找文件夹下重复的文件,并提供删除功能
  14. Springmvc+Spring+Hibernate搭建方法及实例
  15. JavaSE:数据类型之间的转换(附常见面试题)
  16. 毕设记录(ajax)
  17. Windows浏览器无法连接VM虚拟机Centos并打开nginx页面
  18. thinkphp中上传图片以及制成缩略图
  19. C#中的readonly跟const用法小结
  20. 【转】Android开发教程 --- Android调用WS

热门文章

  1. css实现不定宽高的div水平、垂直居中
  2. uiautomatorviewer报错 Error taking device screenshot: EOF
  3. Java 实现日期 Date 的赋值
  4. 初识java虚拟机——JVM
  5. 网络协议之TCP/IP协议
  6. P1309 瑞士轮 (吸氧了)
  7. mysql 批量删表
  8. python调用c/c++时传递结构体参数
  9. 6.824 Lab 2: Raft 2A
  10. 第十届山东省acm省赛补题(2)