分布式共识算法 Raft

本文介绍了分布式共识算法中的Raft协议,强调其易理解性和在分布式系统中的重要性。Raft基于领导者选举,确保集群中节点的一致性。文章详细阐述了选举过程、日志复制、消息类型以及安全性。尽管Raft有其局限性,如单个领导者可能导致性能瓶颈,但它仍然是理解和实现分布式共识的重要选择。
摘要由CSDN通过智能技术生成

分布式共识算法 Raft

Author:杭州电子科技大学 唐涛

CreateTime:  2020-6-5 14:28:07

UpdateTime: 2020-6-7 13:36:16 

Copyright: 唐涛 HOME | 首页 © 2020

Email: tangtao2099@outlook.com 16011324@hdu.edu.cn

Link: 知乎 GitHub 语雀

动机(Motivation)

现代计算基础架构变得越来越分散有很多原因,首先,当今的CPU时钟速度在很长时间内没有很大提升,而通常一台计算机可以处理的速度是有限的,随着我们需要处理越来越多的数据和流量,迫使我们使用多机协同计算来处理这些日益庞大的工作负载,从而为其提供了可伸缩性。 随着数据量和复杂性的不断增加以及数据更新速度的加快,大数据的商业价值和持续的技术进步助长了这一趋势。

通常,即使在负载变化和系统出现部分故障的情况下,服务仍可以保持高度可用。但由于维护或停机,导致停机变得无法接受。只有通过复制(使用多个冗余计算机)才能实现这种弹性:当一台计算机发生故障或过载时,另一台计算机可以接管给定的角色。为了提供抵御数据丢失的弹性,必须存储这些数据,并在所有复制的计算机上进行连贯更新。

❗另外,对于具有全球范围的服务,企业更希望缩短延迟,让请求由地理位置最接近的复制实例提供服务。

在大多数服务中,使用并需要三台(或更多,但通常是奇数)服务器来提供最佳的动态可伸缩性,通过复制的弹性数据存储以及低延迟,以实现最佳的质量和服务保证。为了使计算在分布式系统中给出合理的结果,必须确定地执行该计算,这在分布式系统中,说起来容易做起来难。

如何确保任何两台计算机在任何给定时间都具有相同的状态?

假设任意的网络延迟和可能的网络临时分区,这实际上从根本上是不可能的。在不同的折衷方案下,可以使用不同的较弱(服务基本可用)的保证,但最简单的保证是使主和副本之间最终彼此一致,这意味着如果没有新的写入操作,对于相同的请求,两台计算机最终将返回相同的值。

为了了解分布式计算中的确定性执行,必须区分不会相互干扰的操作(比如:简单的读取操作)和会干扰彼此的操作(比如:对同一变量的写操作),执行冲突操作的服务器需要以某种方式就一个共同的状态达成共识,即寻求共识。

多数的分布式服务器都建立在共识之上:容错复制状态机,分布式数据库和组成员系统都依赖于共识解决方案。实际上,就共识而言,即使是分布式系统中的另一个基本问题&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值