![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
理论相关
文章平均质量分 92
分布式理论相关
槑!
这个作者很懒,什么都没留下…
展开
-
Paxos 实现之 Chubby
ChubbyChubby是一个面向松耦合分布式系统的锁服务,GFS(Google File System)和Big Table等大型系统都是用它来解决分布式协作、元数据存储和Master选举等一些列与分布式锁服务相关的问题。Chubby的底层一致性实现就是以Paxos算法为基础,Chubby提供了粗粒度的分布式锁服务,开发人员直接调用Chubby的锁服务接口即可实现分布式系统中多个进程之间粗粒度的同控制,从而保证分布式数据的一致性。1 设计目标Chubby被设计成为一个需要访问中心化的分布式锁服务。原创 2021-04-28 12:50:22 · 1032 阅读 · 0 评论 -
Raft 与 Zab 对比
0 一致性问题一致性算法在实现状态机这种应用时,有哪些常见的问题:1 leader选举1.1 一般的leader选举过程选举的轮次选举出来的leader要包含更多的日志1.2 leader选举的效率会不会出现split vote?以及各自的特点是?1.3 加入一个已经完成选举的集群怎么发现已完成选举的leader?加入过程是否对leader处理请求的过程造成阻塞?1.4 leader选举的触发谁在负责检测需要进入leader选举?2 上一轮次转载 2021-04-27 17:46:35 · 1036 阅读 · 0 评论 -
分布式一致性算法(三):ZAB
1 ZAB介绍ZAB协议全称就是ZooKeeper Atomic Broadcast protocol,是ZooKeeper用来实现一致性的算法,分成如下4个阶段。先来解释下部分名词electionEpoch:每执行一次leader选举,electionEpoch就会自增,用来标记leader选举的轮次peerEpoch:每次leader选举完成之后,都会选举出一个新的peerEpoch,用来标记事务请求所属的轮次zxid:事务请求的唯一标记,由leader服务器负责进行分配。由2部分构成,高32原创 2021-04-27 17:45:26 · 449 阅读 · 0 评论 -
实例详解 ZooKeeper ZAB 协议
ZooKeeper是什么ZooKeeper是一个分布式协调服务,可用于服务发现、分布式锁、分布式领导选举、配置管理等。这一切的基础,都是ZooKeeper提供了一个类似于Linux文件系统的树形结构(可认为是轻量级的内存文件系统,但只适合存少量信息,完全不适合存储大量文件或者大文件),同时提供了对于每个节点的监控与通知机制。既然是一个文件系统,就不得不提ZooKeeper是如何保证数据的一致性的。本节将将介绍ZooKeeper如何保证数据一致性,如何进行领导选举,以及数据监控/通知机制的语义保证。Z转载 2021-04-27 17:44:35 · 315 阅读 · 0 评论 -
分布式一致性算法(二):Raft
1 leader选举1.1 刚开始所有server启动都是follower状态然后等待leader或者candidate的RPC请求、或者超时。上述3种情况处理如下:leader的AppendEntries RPC请求:更新term和leader信息,当前follower再重新重置到follower状态candidate的RequestVote RPC请求:为candidate进行投票,如果candidate的term比自己的大,则当前follower再重新重置到follower状态超时:转原创 2021-04-27 14:47:45 · 139 阅读 · 0 评论 -
一文搞懂 Raft 算法
一文搞懂Raft算法正文raft是工程上使用较为广泛的强一致性、去中心化、高可用的分布式协议。在这里强调了是在工程上,因为在学术理论界,最耀眼的还是大名鼎鼎的Paxos。但Paxos是:少数真正理解的人觉得简单,尚未理解的人觉得很难,大多数人都是一知半解。本人也花了很多时间、看了很多材料也没有真正理解。直到看到raft的论文,两位研究者也提到,他们也花了很长的时间来理解Paxos,他们也觉得很难理解,于是研究出了raft算法。raft是一个共识算法(consensus algorithm),所谓共识,转载 2021-04-27 14:46:38 · 493 阅读 · 0 评论 -
分布式一致性算法(一):Paxos
Paxos 算法Paxos 算法是莱斯利·兰伯特于1990年提出的一种基于消息传递且具有高度容错特性的一致性算法。问题分布式系统中的节点通信存在两种模型:共享内存(Shared memory)和消息传递(Messages passing)。基于消息传递通信模型的分布式系统,不可避免的会发生以下错误:进程可能会慢、被杀死或者重启,消息可能会延迟、丢失、重复,在基础 Paxos 场景中,先不考虑可能出现消息篡改即拜占庭错误的情况。Paxos 算法解决的问题是在一个可能发生上述异常的分布式系统中如何就某原创 2021-04-27 14:45:37 · 392 阅读 · 2 评论 -
Paxos算法原理与推导
分布式系列文章——Paxos算法原理与推导Paxos算法在分布式领域具有非常重要的地位。但是Paxos算法有两个比较明显的缺点:1.难以理解 2.工程实现更难。网上有很多讲解Paxos算法的文章,但是质量参差不齐。看了很多关于Paxos的资料后发现,学习Paxos最好的资料是论文《Paxos Made Simple》,其次是中、英文版维基百科对Paxos的介绍。本文试图带大家一步步揭开Paxos神秘的面纱。Paxos是什么Paxos算法是基于消息传递且具有高度容错特性的一致性算法,是目前公认的解决转载 2021-04-27 14:14:10 · 164 阅读 · 0 评论 -
分布式事务的解决方案
两阶段提交/XA2PC, 是 Two-Phase Commit 的缩写,即二阶段提交,是计算机网络尤其是在数据库领域 内,为了使基于分布式系统架构下的所有节点在进行事务处理过程中能够保持原子性和一致性而设计的一种算法。通常,二阶段提交协议也被认为是一种一致性协议,用来保 证分布式系统数据的一致性。目前,绝大部分的关系型数据库都是采用二阶段提交协议 来完成分布式事务处理的,利用该协议能够非常方便地完成所有分布式事务参与者的协 调,统一决定事务的提交或回滚,从而能够有效地保证分布式数据一致性,因此二阶段 提原创 2021-04-27 13:57:11 · 84 阅读 · 0 评论 -
从 ACID 到 CAP/BASE
ACID事务 (Transaction) 是由一系列对系统中数据进行访问与更新的操作所组成的一个程序 执行逻辑单元(Unit), 狭义上的事务特指数据库事务。一方面,当多个应用程序并发访 问数据库时,事务可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相 干扰。另一方面,事务为数据库操作序列提了一个从失败中恢复到正常状态的方法, 同时提供了数据库即使在异常状态下仍能保持数据一致性的方法。 事务具有四个特征,分别是原子性( Atomicity) 、一致性( Consistency) 、隔离性 (I原创 2021-04-27 13:56:58 · 107 阅读 · 2 评论 -
分布式系统的特点及问题
分布式的特点在《分布式系统概念与设计》注’一书中,对分布式系统做了如下定义:分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。上面这个简单的定义涵盖了几乎所有有效地部署了网络化计算机的系统。严格地讲,同 一个分布式系统中的计算机在空间部署上是可以随意分布的,这些计算机可能被放在不同的机柜上,也可能在不同的机房中,甚至分布在不同的城市。无论如何,一个标准的 分布式系统在没有任何特定业务逻辑约束的情况下,都会有如下几个特征。分布性分布式系统中的多原创 2021-04-27 13:56:39 · 692 阅读 · 0 评论