RAFT共识算法学习

本文深入探讨了RAFT共识算法,它是etcd分布式键值数据库中用于实现一致性的重要机制。etcd因其简单、安全、快速和可靠性而被广泛采用。RAFT将共识问题分解为领导选举、日志复制和安全性三个子问题,确保在部分节点故障或网络延迟情况下仍能保持数据一致。此外,文章还介绍了选举过程和避免平票的策略,以及ECDSA算法在数据安全性中的作用。

RAFT共识算法

https://raft.github.io/raft.pdf raft论文

http://thesecretlivesofdata.com/raft/ raft算法动画演示

1.分布式系统

etcd简介

etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法,etcd基于Go语言实现。

etcd作为服务发现系统,有以下的特点:

  • 简单:安装配置简单,而且提供了HTTP API进行交互,使用也很简单
  • 安全:支持SSL证书验证
  • 快速:根据官方提供的benchmark数据,单实例支持每秒2k+读操作
  • 可靠:采用raft算法,实现分布式系统数据的可用性和一致性

分布式系统的挑战

  • 时序性Timing运行在不同网络下的机器中的进程如何判断一些事件发生的顺序
  • 并发性Concurreny运行在不同网络下的机器中的进程如何共享资源而互不干扰。比如访问共同的数据库。
  • 健壮性Roubustness 应对网络的不稳定性以及硬件的不稳定性。
  • 一致性Consistency如何保障无论访问哪个服务节点,都能获得相同的结果。

分布式共识

分布式共识是分布式系统中多个节点之间,彼此对某个状态达成一致结果的过程。

分布式共识的引用(Application of Consensus)

  • 逻辑时间的共识,来决定事件发生的顺序
  • 互斥性的共识,用于决定谁正拥有访问的资源
  • 协调者的共识,谁是当下的leader

RAFT共识算法是一种用于实现分布式共识的算法,主要用于管理日志复制的一致性。相比于Paxos算法,RAFT算法更容易理解和应用于实际系统中。它被广泛应用于联盟链中的共识算法。在RAFT算法中,一个由N个节点构成的系统中,只需要有(N 1)/2个节点正常工作,系统就能保持一致性。例如,在一个5个节点的系统中,允许出现2个节点出现非拜占庭错误,比如节点宕机、网络分区、消息延时等。RAFT算法已被证明可以提供与Paxos相同的容错性和性能。 RAFT算法中,服务器节点之间的通信使用远程过程调用(RPCs),并且基本的一致性算法只需要两种类型的RPCs。 在介绍RAFT算法之前,先提到了Paxos算法。Paxos算法是Leslie Lamport于1990年提出的基于消息传递的一致性算法。然而,由于其难以理解,一开始并没有得到很多人的重视。作者在八年后的1998年正式发表了关于Paxos算法的论文,但由于算法仍然难以理解,也没有引起足够的重视。后来,作者用更容易理解的方法重新发表了一篇论文《Paxos Made Simple》。Paxos算法的难以理解使得许多学生和教授在学习和教授Paxos算法时反馈困难,同时在实际应用实现时也较为困难。这也是为什么后来提出了RAFT算法的原因。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Raft共识算法原理](https://blog.youkuaiyun.com/wxudong1991/article/details/109314417)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Raft共识算法](https://blog.youkuaiyun.com/weixin_43966635/article/details/123920454)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值