随笔分类 - 分布式
摘要:前言 canal 是什么? 引用一下官方回答: 阿里巴巴mysql数据库binlog的增量订阅&消费组件 canal 能做什么? 基于日志增量订阅&消费支持的业务: 1. 数据库镜像 2. 数据库实时备份 3. 多级索引 (卖家和买家各自分库索引) 4. search build 5. 业务cach
阅读全文
摘要:目录 1. 三个状态 Raft 设计了 3 个状态,用于表示节点的状态,分别是跟随者,候选者,领导者。 3 个角色的转换关系和流程: 可以看到,这张图里的几个概念: 2. 什么是任期 目录: 背景:由于机器的物理时间是不可靠的,所以需要一个逻辑时间。称之为任期(term)。 从 2 个阶段开始说起:
阅读全文
摘要:前言 像我这样的菜鸟,总会有各种疑问,刚开始是对 JDK API 的疑问,对 NIO 的疑问,对 JVM 的疑问,当工作几年后,对服务的可用性,可扩展性也有了新的疑问,什么疑问呢?其实是老生常谈的话题:服务的扩容问题。 正常情况下的服务演化之路 让我们从最初开始。 1. 单体应用 每个创业公司基本都
阅读全文
摘要:本文旨在讲述如何使用 Java 语言实现基于 Raft 算法的,分布式的,KV 结构的存储项目。该项目的背景是为了深入理解 Raft 算法,从而深刻理解分布式环境下数据强一致性该如何实现;该项目的目标是:在复杂的分布式环境中,多个存储节点能够保证数据强一致性。
阅读全文
摘要:1. 服务框架的设计 尽管不同的分布式服务框架实现细节存在差异,但是核心功能差异不大,下面的架构图描绘了一个分布式服务框架的整体逻辑架构。 总共分为 3 层: 1. 服务层,Service,其中主要部分就是动态代理,主要用于将服务提供者的接口封装成远程服务调用。上层的服务接口用于 Spring 之类
阅读全文
摘要:前言 在分布式系统中,常常需要使用缓存,而且通常是集群,访问缓存和添加缓存都需要一个 hash 算法来寻找到合适的 Cache 节点。但,通常不是用取余hash,而是使用我们今天的主角—— 一致性 hash 算法。 今天楼主就来说说这个一致性 hash 算法。 1. 为什么普通的 hash 算法不行
阅读全文
摘要:前言 在前文 "分布式理论(八)—— Consistent Hash(一致性哈希算法)" 中,我们讨论了一致性 hash 算法的原理,并说了,我们会自己写一个简单的算法。今天就来写一个。 普通 hash 的结果 先看看普通 hash 怎么做。 首先,需要缓存节点对象,缓存中的存储对象,还有一个缓存节
阅读全文
摘要:前言 我们说为了实现 BASE 理论,需要在可用性和一致性之间找到一个合适的一致性理论,于是,我们在上篇文章中了解了 2PC 理论,也就是两阶段提交,二阶段提交原理简单,实现方便,但是缺点则是同步阻塞,单点问题,数据不一致,过于保守。 而为了弥补二阶段提交的缺点,研究者们在他的基础上,提出了三阶段提
阅读全文
摘要:前言 Paxos 算法如同我们标题大图:世界上只有一种一致性算法,就是 Paxos。出自一位 google 大神之口。 同时,Paxos 也是出名的晦涩难懂,推理过程极其复杂。楼主在尝试理解 Paxos 算法的过程中历经挫折。 今天,楼主不会讲推理过程,因为就算是尝试使用大白话来讲,也非常的难懂。当
阅读全文
摘要:前言 我们之前讲述了 Paxos 一致性算法,虽然楼主尝试用最简单的算法来阐述,但仍然还是有点绕。楼主最初怀疑自己太笨,后来才直到,该算法的晦涩难懂不是只有我一个人这么认为,而是国际公认! 所以 Paxos 算法在 1990 就发表出来,但却得不到运用。真正的名声大噪还是在兰伯特使用 “更简单” 的
阅读全文
摘要:前言 在前面的文章中,我们说了很多一致性协议,比如 Paxos,Raft,2PC,3PC等等,今天我们再讲一种协议,ZAB 协议,该协议应该是所有一致性协议中生产环境中应用最多的了。为什么呢?因为他是为 Zookeeper 设计的分布式一致性协议! 1. 什么是 ZAB 协议? ZAB 协议介绍 1
阅读全文
摘要:前言 在前文 "分布式理论(一) —— CAP 定理" 中,我们说,CAP 不可能同时满足,而分区容错是对于分布式系统而言,是必须的。最后,我们说,如果系统能够同时实现 CAP 是再好不过的了,所以出现了 BASE 理论,今天就来讲讲 Base 理论。 1. 什么是 Base 理论 BASE:全称:
阅读全文
摘要:前言 为了使系统尽量能够达到 CAP,于是有了 BASE 协议,而 BASE 协议是在可用性和一致性之间做的取舍和妥协。 人们往往需要在系统的可用性和数据一致性之间反复的权衡。于是呢,就产生我们标题中的一致性协议,而且还不止一个呢。 为了解决分布式问题,涌现了很多经典的算法和协议,最著名的就是二阶段
阅读全文
摘要:目录: 1. 什么是 CAP 定理 2. 为什么只能 3 选 2 3. 能不能解决 3 选 2 的问题 4. 引用 1. 什么是 CAP 定理 2000 年的时候,Eric Brewer 教授提出了 CAP 猜想,2年后,被 Seth Gilbert 和 Nancy Lynch 从理论上证明了猜想的
阅读全文