raft

请不要叫我菜鸡15 天前
分布式·后端·区块链·raft·共识算法·zab
分布式——一致性模型与共识算法一致性问题是分布式领域最为基础也是最重要的问题。一般来讲,分布式系统中的一致性按照对一致性要求的不同,主要分为强一致性,弱一致性这两大类,前者是基于 safety 的概念,后者是基于 liveness 的概念。
请不要叫我菜鸡15 天前
分布式·学习·raft·共识算法
mit6824-06-Raft学习记录01近日开始学习分布式共识算法Raft,慢慢记录一些自己能看懂的东西。优质博客:单点故障(single point of failure):服务器中某台机器出现故障。 前面介绍过的复制系统,都存在单点故障问题(single point of failure)。
TomGeller1 个月前
raft·cornerstone
cornerstone中RAFT的buffer的实现谈到raft协议实现就绕不开网上流行的mit6.824,但其为go语言,官方没有lab的答案,框架也很晦涩难懂,且全网没有一个博客对其有清晰的解释,有的只是甩一堆名词然后直接贴没有任何注释的代码,非常不适合学习。 但是github上面的cornerstone是纯c++实现的一个非常优雅且精简的raft协议,码风优美,代码易懂,接口清晰,对c++党非常友好,也很适合初学raft的人来学习。 鉴于cornerstone这么优秀的代码还没人对其有过源码级解析,我决定记录自己学习其源码过程并对其源码进行详细解析。
ZHOU西口3 个月前
docker·云原生·raft·swarm·manager·docker swarm·worker
微服务实战系列之玩转Docker(十二)山一程,水一程,身向榆关那畔行,夜深千帐灯。——清·纳兰性德最近偶读纳兰的《长相思》经典之作,被这个“行军”场面震撼了。长长的队伍,跋山涉水,野宿一处。夜深人静的时候,突然激发了纳兰的“思乡”之情,他的留恋和伤感从此被永远定格。可见,如想看懂一个人,可以从他的文章入手,慢慢研读,细细品味。
ZHOU西口3 个月前
docker·云原生·架构·raft·swarm·docker swarm·master-slave
微服务实战系列之玩转Docker(十一)在云原生的世界,经过十多年的进化,Docker已经形成了较完备的“后勤”保障服务和建立了荣辱与共的“密友圈”。用一句话可以概括:“Docker走遍天下,Swarm功不可没”。
ZHOU西口3 个月前
docker·微服务·云原生·raft·swarm·docker swarm·master-slave
微服务实战系列之玩转Docker(十)我们知道Docker的“使命”是为了快速完成应用的迁移和部署。为提升它的战斗能力,Docker官方携手发布了Docker Swarm—— 一个快速完成Docker集群构建的利器。那么请先回忆一下本系列第八篇(重点compose)和第九篇(重点network),一个是为了完成在同一个Docker主机下多容器的编排和运行,另外一个是为Docker主机与容器之间或容器与容器之间进行通信而提供的基本网络类型。
JustLorain4 个月前
数据库·分布式·raft
如何使用 etcd raft 库构建自己的分布式 KV 存储系统(2)本文是《如何使用 etcd raft 库构建自己的分布式 KV 存储系统》系列的第二篇 - raftexample 日志压缩与快照
JustLorain5 个月前
数据库·分布式·raft
如何使用 etcd raft 库构建自己的分布式 KV 存储系统raftexample 是 etcd 提供的一个使用 etcd raft 共识算法库的示例。raftexample 最终实现了一个对外提供 REST API 的分布式键值存储服务。
中间件XL5 个月前
raft·共识算法·选主·分布式日志·dledger
dledger原理源码分析系列(一)-架构,核心组件和rpc组件dledger是openmessaging的一个组件, raft算法实现,用于分布式日志,本系列分析dledger如何实现raft概念,以及dledger在rocketmq的应用
六神就是我5 个月前
论文阅读·llm·raft·rag
【LLM之RAG】RAFT论文阅读笔记论文针对的主要问题是如何将预训练的大型语言模型(LLMs)适应特定领域的检索增强生成(RAG)。这些模型通常在广泛的文本数据上进行预训练,已经表现出在广义知识推理任务上的优越性能。然而,在特定领域,如法律、医学或最新新闻等,普遍的知识推理不足以满足精确性的要求,因此需要对这些模型进行适应性调整以增强其在这些领域内的应用性能。
小哈里6 个月前
分布式·rpc·raft·cap·gossip
【后端开发】服务开发场景之分布式(CAP,Raft,Gossip | API网关,分布式ID与锁 | RPC,Dubbo,Zookeeper)【后端开发】服务开发场景之分布式(CAP,Raft,Gossip | API网关,分布式ID与锁 | RPC,Dubbo,Zookeeper)
Hello-Brand6 个月前
分布式·raft·cap·分布式算法·paxos·zab
架构与思维:4大主流分布式算法介绍(图文并茂、算法拆解)之前的文章中,我们介绍过分布式事务的基础知识,也了解了分布式场景下常见一致性问题和解决方案,对分布式锁和CAS模式有一定的了解,有兴趣的同学可以通过下面链接到作者的两篇相关文章。
coffee_babe6 个月前
java·分布式·raft·一致性
分布式与一致性协议之常见疑惑(一)线性一致性(Linearizability),也称为原子性或强一致性,是分布式系统中的一个一致性模型,它定义了系统对读写操作的行为,以确保系统表现得好像只有一个数据副本,并且所有操作都是原子的。 在线性一致性模型中,系统的行为应该满足以下条件:
coffee_babe6 个月前
java·分布式·raft·一致性·共识算法
分布式与一致性协议之一致哈希算法(三)我们一起来看一个例子,对于1000万个key的3节点KV存储,如果我们使用一致哈希算法增加1个节点,即3节点集群变为4节点集群,则只需要迁移24.3%的数据,如代码所示
coffee_babe7 个月前
java·分布式·raft·一致性·共识算法
分布式与一致性协议之Raft算法(三)你可以把Raft算法的日志复制理解成一个优化后的二阶段提交(将二阶段优化成了一阶段)。优化后减少了一半的往返消息,也就是降低了一半的消息延迟,那日志复制的具体过程又是什么呢? 首先,领导者进入第一阶段,通过日志复制RPC消息将日志项复制到集群中的其他节点上。接着如果领导者接收到大多数的"复制成功"响应后,它会将日志项应用到它的状态机,并返回成功给客户端。如果领导者没有接收到大多数的"复制成功"响应,那么就返回错误给客户端。有人可能会有这样的疑问,领导者将日志项应用到它的状态机,为什么没有通知跟随者应用日志
coffee_babe7 个月前
java·分布式·raft·一致性·共识算法·一致性算法
分布式与一致性协议之Raft算法与一致哈希算法(一)有很多人把Raft算法当成一致性算法,其实它不是一致性算法而是共识算法,是一个Multi-Paxos算法,实现的是如何就一系列值达成共识。并且,Raft算法能容忍少数节点的故障。虽然Raft算法能实现强一致性,也就是线性一致性(Linearizability),但需要客户端协议的配合。在实际场景中,我们一般需要根据场景特点,在一致性强度和实现复杂度之间进行权衡。比如Consul实现了3种一致性模型。
coffee_babe7 个月前
java·分布式·raft·一致性·一致性算法
分布式与一致性协议之Raft算法(四)在日常工作中,你可能会遇到服务器故障的情况,这时你需要替换集群中的服务器。如果遇到需要改变数据副本数的情况,则需要增加或移除集群中的服务器。总的来说,在日常工作中,集群中的服务器数量是会发生变化的。也许你会问,Raft算法是共识算法,它对集群成员进行变更时(比如增加2台服务器),会不会因为集群分裂出现两个领导者呢?在我看来,的确会出现这个问题,因为Raft算法的领导者选举是建立在"大多数"的基础之上,那么当成员变更,集群成员发生变化时,就可能同时存在新旧配置的两个"大多数",出现两个领导者,从而破坏了Ra
coffee_babe7 个月前
java·分布式·raft·一致性·共识算法
分布式与一致性协议之Raft算法(二)我们知道,议会选举中的领导者是有任期的,当领导者任命到期后,需要重新再次选举。Raft算法中的领导者也是有任期,每个任期由单调递增的数字(任期编号)标识。比如,节点A的任期编号是1。任期编号会随着选举的举行而变化,分析如下。
StevenGerrad7 个月前
分布式·raft·6.824
【分布式】MIT 6.824 Lab 2C实现细节分析写完Lab2B后搞大论文,又回来做的Lab2C在Lab2B基础上简单实现persist后无法通过测试样例Test (2C): Figure 8。根据raft图2的最后一个提示,更新commitIndex到i的时候要校验log[i-1].Term == currentTerm。这个原理(可能包括raft整个文章)要重新整理下。
卡布奇诺赛高7 个月前
go·raft
mit 6.824 lab3思路如果你还没有读过lab3的要求/学生指南,请先去阅读对应内容nil.csail.mit.edu/6.824/2020/…