这段时间跟同事聊了不少分布式系统中的常用算法协议,中间有聊到分布式一致性的话题,当然我们对一致性理解都是那种介绍的层次。  哈哈 , 后来用了心思去学习分布式一致性协议 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. 



对Python及运维开发感兴趣的朋友可以加QQ群 : 478476595 !!!

另外如果大家觉得文章对你有些作用!   帮忙点击广告. 一来能刺激我写博客的欲望,二来好维护云主机的费用.
如果想赏钱,可以用微信扫描下面的二维码. 另外再次标注博客原地址  xiaorui.cc  ……   感谢!
暂无相关产品