技术分享 《分布式一致性raft算法实现原理》

       这段时间跟同事聊了不少分布式系统中的常用算法协议,中间有聊到分布式一致性的话题,当然我们对一致性理解都是那种介绍的层次。  哈哈 , 后来用了心思去学习分布式一致性协议 raft,  现在有些心得,就拿出来给同事分享下。 

      

      先简单聊下什么是raft协议. 他用来做什么的?  分布式存储系统通常会维护多个副本,这样不仅能提高系统的可用性,因为有多个副本所以性能也有提高。但是多副本带来的代价就是分布式存储系统的核心问题之一:  需要维护多个副本的数据一致性。  Raft一致性协议就是用来干这事的,即使在部分副本宕机的情况下,只要符合raft的原则,照样可以对外提供服务。


    Raft是一种较容易理解的一致性协议。 我曾经也写过工夫去学习paxos, 结果…. 我想大家都懂的,没搞明白。 学习paxos的过程是有些痛苦的,国内的一些文档说的不明不白的,国外的文档又太有深度。。。现在只是浅薄的看懂他在正常情况下的选举,日志复制,分区容错,但是paxos对于错误的处理,有不少知识点不是很理解。    

     Raft是个好东西呀,我以前用的influxdb,现在用的etcd,consul 都是采用Raft来确保数据的一致性。  为了做raft的话题分享,硬着头皮看了国外的raft说明文档,有些醉心.    我一般分享不会录制视频,所以尽量会把ppt做的详细点,有点raft基础的人,应该可以流畅的看下去。


   PDF地址:

   http://static.xiaorui.cc/raft_design.pdf   


   slideshare.net:

Raft from rfyiamcool

slideshare是需要翻墙才能访问的,另外把 Raft分享的摘要贴出来。

END. 

7 Responses

  1. 巷子口 2017年7月12日 / 下午7:04

    hi,博主
    你好,最近在用consul,因为raft协议有点难懂且国内博文较少,希望博主还是写一篇详细的博文或者是录制一份视频来造福苍生!
    谢谢!!![/强]

  2. 厉害了我的哥 2016年11月17日 / 上午7:52

    这个厉害呀!!!

  3. 2016年7月10日 / 上午8:04

    你的分享有些频繁呀 公司的技术气氛这么浓?

    • 峰云就她了 2016年7月13日 / 下午10:02

      恩,公司在招Python工程师,有兴趣可以试试

      • 找工作 2016年7月26日 / 上午12:12

        有jd么?

  4. 2016年7月10日 / 上午12:13

    楼主使用哪个项目做得博客?看起来很棒!

  5. wwek 2016年7月9日 / 下午9:14

    很好

进行回复 取消回复

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">