分布式-一致性算法
文章平均质量分 63
共识算法
OkidoGreen
这个作者很懒,什么都没留下…
展开
-
raft协议为什么有election和heartbeat timeout的区分?
转:https://www.zhihu.com/question/263684969/answer/1572960482根据论文的说法,election timeout是Follower转换成Candidate状态的超时Followers (§5.2):• Respond to RPCs from candidates and leaders• If election timeout elapses without receiving AppendEntriesRPC from current转载 2021-01-04 17:05:34 · 1230 阅读 · 1 评论 -
深度解析 Raft 分布式一致性协议
本文是 Raft 实战系列理论内容的整合篇,我们结合 Raft 论文讲解 Raft 算法思路,并遵循 Raft 的模块化思想对难理解及容易误解的内容抽丝剥茧。算法方面讲解:选主机制、基于日志实现状态机机制、安全正确维护状态机机制;工程实现方面讲解:集群成员变更防脑裂策略、解决数据膨胀及快速恢复状态机策略、线性一致读性能优化策略等。1. 概述1.1 Raft 是什么?Raft is a consensus algorithm for managing a replicated log. It p转载 2021-01-04 09:12:57 · 1383 阅读 · 0 评论 -
raft 有关竞选超时 vs 心跳超时的疑惑
raft协议这两个超时时间是比较重要的,看着有些疑惑,集群刚启动的时候,心跳会超时,这时候follower是直接成为candidator么?还是还要在心跳超时的基础上等待一个竞选超时才变成 candidator? 成为candidator并且发送投票请求给follower,这个candidator这时候本身等待投票是有个超时的,这个超时也是竞选超时么? 心跳超时和竞选超时哪个大?心跳超时一般设置为多少? 集群已经正常运转leader刚挂掉的时候,我们是依靠心跳超时还是竞选超时来触发选举流程?.转载 2020-08-23 09:58:06 · 2385 阅读 · 0 评论 -
Paxos共识算法详解
在一个分布式系统中,由于节点故障、网络延迟等各种原因,根据CAP理论,我们只能保证一致性(Consistency)、可用性(Availability)、分区容错性(Partition Tolerance)中的两个。对于一致性要求高的系统,比如银行取款机,就会选择牺牲可用性,故障时拒绝服务。MongoDB、Redis、MapReduce使用这种方案。对于静态网站、实时性较弱的查询类数据库,会牺牲一致性,允许一段时间内不一致。简单分布式协议Gossip,数据库CouchDB、Cassandra使用这种方转载 2020-08-22 12:48:16 · 1505 阅读 · 0 评论 -
详解蚂蚁金服 SOFAJRaft:生产级高性能 Java 实现
前言SOFAJRaft 是一个基于 Raft 一致性算法的生产级高性能 Java 实现,支持 MULTI-RAFT-GROUP,适用于高负载低延迟的场景。SOFAJRaft 是从百度的 braft 移植而来,做了一些优化和改进,感谢百度 braft 团队开源了如此优秀的 C++ Raft 实现。GitHub 地址:https://github.com/alipay/sofa-jraft之前,我们有一篇介绍 SOFAJRaft 的文章,可在文末获得链接,延续这个内容,今天的演讲分为三部分,先简要介转载 2020-07-29 18:17:11 · 1090 阅读 · 0 评论 -
一致性哈希算法学习及JAVA代码实现分析
1,对于待存储的海量数据,如何将它们分配到各个机器中去?---数据分片与路由当数据量很大时,通过改善单机硬件资源的纵向扩充方式来存储数据变得越来越不适用,而通过增加机器数目来获得水平横向扩展的方式则越来越流行。因此,就有个问题,如何将这些海量的数据分配到各个机器中?数据分布到各个机器存储之后,又如何进行查找?这里主要记录一致性Hash算法如何将数据分配到各个机器中去。2,衡量一致性哈...转载 2020-03-25 20:52:24 · 714 阅读 · 0 评论 -
MemCache超详细解读(一致性hash)
转载地址:http://www.cnblogs.com/xrq730/p/4948707.htmlMemCache是什么MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据转载 2016-10-25 18:19:31 · 4303 阅读 · 1 评论 -
五分钟理解一致性哈希算法(consistent hashing)
转载请说明出处:http://blog.csdn.net/cywosp/article/details/23397179 一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到转载 2017-07-15 19:11:47 · 933 阅读 · 0 评论 -
分布式系统的Raft算法学习笔记
摘取自:http://mp.weixin.qq.com/s?__biz=MzIyMTQ1NDE0MQ==&mid=2247483979&idx=1&sn=12864382e233fe9b900ab14349404032&chksm=e83dc819df4a410f5959b6922025d317d6c497b7110c4c5d8720fb2b0a70246ce6...转载 2020-01-21 19:17:59 · 940 阅读 · 0 评论 -
【重点】一文搞懂Raft算法
目录raft算法概览leader electionterm选举过程详解log replicationReplicated state machines请求完整流程safetyElection safetylog matchingleader completeness vs elcetion restrictioncorner casestale ...转载 2020-01-21 19:07:55 · 771 阅读 · 0 评论 -
Raft算法动画展示
http://thesecretlivesofdata.com/raft/转载 2020-01-20 18:17:40 · 1196 阅读 · 0 评论 -
共识算法:Raft
多个拜占庭将军要如何在可能有叛徒、信使可能被策反或者暗杀的情况下达成是否要进攻的一致性决定?还不了解的先看看上一篇《拜占庭将军问题》。这篇主要是介绍简化版拜占庭将军问题的解决方案:Raft 共识算法。拜占庭将军问题是分布式领域最复杂、最严格的容错模型。但在日常工作中使用的分布式系统面对的问题不会那么复杂,更多的是计算机故障挂掉了,或者网络通信问题而没法传递信息,这种情况不考虑计算机之间互相发...转载 2020-01-20 17:44:40 · 647 阅读 · 0 评论 -
Raft对比ZAB协议
Raft算法赏析 ZooKeeper的一致性算法赏析 Raft对比ZAB协议0 一致性问题本篇文章想总结下Raft和ZAB在处理一些一致性问题上的做法,详见之前对这2个算法的描述Raft算法赏析 ZooKeeper的一致性算法赏析上述分别是针对如下算法实现的讨论:Raft的实现copycat,由于Raft算法本身已经介绍的相当清晰,copycat基本上和Raft算法保持一致...转载 2020-01-17 18:35:51 · 1225 阅读 · 0 评论 -
raft协议,leader在commit了一条日志后,立刻挂了,那其他节点如何处理这条日志?
raft论文提到一旦日志被commit,那么大部分节点都会拥有这条日志,但问题是大部分节点只有当leader做了commit之后,才会commit到自己的状态机吧。假若leader在commit完一条日志后马上挂了,那其他节点肯定不知道这条日志已经被commit,那后续新的leader也不会把这条日志放进commited log中去。请问这样日志的一致性是怎么保证的? raft不是不能改写已经被c...转载 2020-01-17 18:24:51 · 1993 阅读 · 1 评论 -
Zookeeper全解析——Paxos作为灵魂(转)
原计划在介绍完ZK Client之后就着手ZK Server的介绍,但是发现ZK Server所包含的内容实在太多,并不是简简单单一篇Blog就能搞定的。于是决定从基础搞起比较好。那么ZK Server最基础的东西是什么呢?我想应该是Paxos了。所以本文会介绍Paxos以及它在ZK Server中对应的实现。先说Paxos,它是一个基于消息传递的一致性算法,Leslie Lamport在...转载 2016-10-22 21:11:55 · 908 阅读 · 0 评论 -
Fast Paxos
自从Lamport在1998年发表Paxos算法后,对Paxos的各种改进工作就从未停止,其中动作最大的莫过于2005年发表的Fast Paxos。无论何种改进,其重点依然是在消息延迟与性能、吞吐量之间作出各种权衡。为了容易地从概念上区分二者,称前者Classic Paxos,改进后的后者为Fast Paxos。1. Fast Paxos概览Lamport在40多页的论文中不仅提出了F...转载 2016-09-02 17:14:26 · 890 阅读 · 0 评论 -
Paxos算法与Zookeeper分析
1Paxos算法1.1基本定义算法中的参与者主要分为三个角色,同时每个参与者又可兼领多个角色:⑴proposer提出提案,提案信息包括提案编号和提议的value;⑵acceptor收到提案后可以接受(accept)提案;⑶learner只能"学习"被批准的提案;算法保重一致性的基本语义:⑴决议(value)只有在被proposers提出后才能被批准(未经批准的...转载 2016-09-07 17:52:32 · 816 阅读 · 0 评论 -
Zookeeper的一致性协议:Zab
Zookeeper使用了一种称为Zab(Zookeeper Atomic Broadcast)的协议作为其一致性复制的核心,据其作者说这是一种新发算法,其特点是充分考虑了Yahoo的具体情况:高吞吐量、低延迟、健壮、简单,但不过分要求其扩展性。下面将展示一些该协议的核心内容:另,本文仅讨论Zookeeper使用的一致性协议而非讨论其源码实现Zookeeper的实现是有Client、Ser...转载 2016-09-02 17:15:09 · 1006 阅读 · 0 评论 -
ZooKeeper之ZAB协议
ZooKeeper为高可用的一致性协调框架,自然的ZooKeeper也有着一致性算法的实现,ZooKeeper使用的是ZAB协议作为数据一致性的算法,ZAB(ZooKeeper Atomic Broadcast )全称为:原子消息广播协议;ZAB可以说是在Paxos算法基础上进行了扩展改造而来的,ZAB协议设计了支持崩溃恢复,ZooKeeper使用单一主进程Leader用于处理客户端所有事务...转载 2016-09-02 17:29:24 · 1668 阅读 · 0 评论 -
ZAB协议
https://blog.csdn.net/qq_18998145/article/details/86670008zookeeper 是一个为分布式应用提供高效且可靠的分布式协调服务。在解决分布式一致性方面,zookeeper 并没有使用 Paxos ,而是采用ZAB 协议,它有两种基本模式,崩溃恢复模式和消息广播模式,ZAB 让整个 zookeeper 集群在两个模式之间转换,消息广...转载 2019-05-29 17:48:29 · 860 阅读 · 0 评论 -
ZAB协议-zk
参考文章:https://blog.csdn.net/chengyuqiang/article/details/79190061https://blog.csdn.net/wangyangzhizhou/article/details/52698555https://blog.csdn.net/yangguosb/article/details/80254240ZK中使用的是ZAB协议,...转载 2019-11-22 17:58:29 · 619 阅读 · 0 评论 -
Raft 为什么是更易理解的分布式一致性算法—Leader故障下的处理
转自:http://www.cnblogs.com/mindwind/p/5231986.htmlRaft 协议的易理解性描述虽然 Raft 的论文比 Paxos 简单版论文还容易读了,但论文依然发散的比较多,相对冗长。读完后掩卷沉思觉得还是整理一下才会更牢靠,变成真正属于自己的。这里我就借助前面黑白棋落子里第一种极简思维来描述和概念验证下 Raft 协议的工作方式。在一个由 Raft...转载 2020-01-07 19:42:27 · 911 阅读 · 0 评论 -
Raft算法详解
Paxos算法详解一文讲述了晦涩难懂的Paxos算法,以可理解性和易于实现为目标的Raft算法极大的帮助了我们的理解,推动了分布式一致性算法的工程应用,本文试图以通俗易懂的语言讲述Raft算法。一、Raft算法概述不同于Paxos算法直接从分布式一致性问题出发推导出来,Raft算法则是从多副本状态机的角度提出,用于管理多副本状态机的日志复制。Raft实现了和Paxos相同的功能,它将一致性...转载 2020-01-17 17:29:58 · 1314 阅读 · 0 评论