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

被折叠的 条评论
为什么被折叠?



