分布式
杨小帆_
沉下心来做技术
展开
-
谈谈一致性哈希算法及其 Golang 实现(含负载均衡算法概述)
文章目录一、概述二、负载均衡算法2.1 概述2.2 轮询算法2.3 随机算法2.4 随机轮询算法2.5 加权轮询算法2.6 哈希算法三、一致性哈希算法3.1 适用场景3.2 算法思想四、代码实现(Golang)4.1 主要属性和函数4.2 使用方法4.3 存在的问题五、源码地址六、内容总结 一、概述 本篇博文我们将会谈一谈一些的常见负载均衡算法,然后重点讨论一下 一致性哈希算法 的适用范围和算...原创 2019-11-16 20:56:38 · 1297 阅读 · 0 评论 -
6.824 Fault-tolerant key/value storage system v1.0(五)(System raft algorithm code structure)
一、概述 二、结构概述 2.1 整体结构示意图 2.2 三、详述结构细节 3.1 Raft Timer 3.2 Raft Worker 3.3 Raft RPC Sender And Handler 四、原创 2019-11-13 15:03:23 · 369 阅读 · 0 评论 -
6.824 Fault-tolerant key/value storage system v1.0(四)( Brief description of code architecture)
文章目录一、概述二、系统介绍2.1 概述2.2 支持操作三、系统整体结构3.1 系统整体结构示意图3.2 系统结构划分3.3 系统各部分之间的关联3.4 系统各部分之间调用的细节四、系统源码五、内容总结 一、概述 在这篇博文中将整理一下到 Lab 3B 为止的系统结构,并在后续的博文中开启对于整个系统关键技术点实现思路的记述。 二、系统介绍 2.1 概述 该服务为通过 Get/Put/A...原创 2019-11-11 16:10:19 · 399 阅读 · 0 评论 -
Zookeeper Zab 协议解析——Zookeeper 源码解析之 Fle算法与 Zab协议(五)
文章目录一、概述二、Zab 协议描述2.1 前文回顾三、Fle 算法描述3.1 前文回顾3.2 算法流程图——网络层3.3 算法流程图——应用层四、Zab 协议与 Fle 算法4.1 Zab 协议与 Fle 算法的关系4.2 Fle 算法所做的优化五、参考文献 一、概述 在前面的博文中我们已经分别分析过了Zookeeper中的Zab协议和Fle算法,在这篇文章中我们将对两者的执行流程进行总结,...原创 2019-11-09 13:04:22 · 603 阅读 · 0 评论 -
Zookeeper Zab 协议解析——Zookeeper 源码解析之再探领导者选举算法实现(四)
文章目录一、概述二、初探 FLE 算法实现三、源码解析3.1 问题探究3.2 WorkerReceiver 中的选举逻辑3.3 FLE 算法代码实现中的消息传递四、内容总结 一、概述 在上一篇博文中我们分析了FastLeaderElection中的lookForLeader方法中的选举逻辑,当时分析完后觉得逻辑还是比较合理的,但是今早刷牙的时候突然产生了一个疑问,如果lookForLeader...原创 2019-11-08 17:49:18 · 383 阅读 · 0 评论 -
Zookeeper Zab 协议解析——Zookeeper 源码解析之初探领导者选举算法实现(三)
文章目录一、概述二、核心类简介2.1 QuorumCnxManager三、源码解析3.1 选举入口分析3.2 选举初始化3.3 选举流程四、内容总结 一、概述 本篇博文会从 Zookeeper 中 FLE(Fast Leader Election) 算法的代码实现入口着手,依次分析 FLE 算法的初始化流程和主要的选举流程的代码实现,并着重分析 FLE 算法中在 Zookeeper 启动时的选...原创 2019-11-07 22:03:01 · 1079 阅读 · 1 评论 -
Zookeeper Zab 协议解析——算法细节分析(二)
文章目录一、概述二、算法整体描述三、算法细节分析3.1 变量介绍3.2 细节概述3.3 确立一个新的 Leader(关于 Election 状态)四、参考文献 一、概述 在前面的一篇文章中我们已经对 Zab 协议的整体流程进行了分析,在这篇博文里我们继续对 Zab 协议中的一些细节部分进行分析,进一步加深对于协议的理解。 二、算法整体描述 Zookeeper Zab 协议解析——算法整体...原创 2019-11-03 19:54:33 · 487 阅读 · 0 评论 -
Zookeeper Zab 协议解析——算法整体描述(一)
文章目录一、概述二、协议简介三、协议算法解析3.1 算法概述3.2 变量介绍3.3 Phase 1 发现 (Discovery)3.4 Phase 2 同步 (Synchronization)3.5 Phase 3 广播 (Broadcast)四、参考文献 一、概述 这篇博文算是对 Zookeeper Zab 协议的一次整体概述,主要是根据论文描述对 Zab 协议三大主要阶段详细过程的分析,先...原创 2019-11-03 13:53:06 · 1380 阅读 · 0 评论 -
6.824 Fault-tolerant key/value storage system v1.0(三)( Committing entries from previous terms)
文章目录一、概述二、Raft Leader Election 存在的问题2.1 正常流程2.2 问题描述2.3 出现问题的原因三、优化思路3.1 论文描述3.2 优化分析四、内容总结五、项目源码 一、概述 关于 Committing entries from previous terms 是论文 In Search of an Understandable Consensus Algorith...原创 2019-11-01 19:00:34 · 217 阅读 · 0 评论 -
6.824 Fault-tolerant key/value storage system v1.0(二)(Rollback Optimization)
一、概述 二、论文描述 If desired, the protocol can be optimized to reduce the number of rejected AppendEntries RPCs. For example, when rejecting an AppendEntries request, the follower can include the term ...原创 2019-10-29 18:45:46 · 225 阅读 · 0 评论 -
6.824 Fault-tolerant key/value storage system v1.0(一)(附源码)
目录 一、概述 二、开源地址 三、系统介绍 四、参考资料 五、心得体会 六、内容总结 一、概述 时隔一个多星期之后我又回来了,首先本篇博文是基于 Raft 算法实现的具备容错机制的分布式键值存储系统开发系列博文的第一篇,先大概介绍整个项目的结构以及自己这段时间的心得吧,在下一篇中我将首先介绍 领导选举 和 心跳 的实现思路,注:该系统的第一版是使用Golang基于 MIT ...原创 2019-10-24 22:09:15 · 323 阅读 · 0 评论