跳至主要內容
分布式共识

分布式共识

什么是分布式共识

共识 (distributed consensus) 是分布式系统中最基本的问题,用来保证一个分布式系统的可靠性以及容错能力。简单来说,分布式共识性是指多个服务器的保持状态一致

共识问题通常形式化如下:一个或多个节点可以提议(propose) 某些值,而集群中的所有有效节点根据共识算法进行协商,最终决议(decides) 采纳某个节点的提议。

而共识算法必须满足以下性质:


钝悟...大约 8 分钟分布式分布式协同分布式协同综合分布式协同共识广播epochquorum
《深入浅出分布式技术原理》笔记

《深入浅出分布式技术原理》笔记

开篇词 掌握好学习路径,分布式系统原来如此简单

导读:以前因后果为脉络,串起网状知识体系

分布式系统解决了什么问题

  • 首先,分布式系统解决了单机性能瓶颈导致的成本问题。——水平扩展
  • 然后,解决了用户量和数据量爆炸性地增大导致的成本问题。——水平扩展
  • 接着,满足了业务高可用的要求。——解决单点问题,鸡蛋不要都放在一个篮子里
  • 最后,分布式系统解决了大规模软件系统的迭代效率和成本的问题。——分而治之,化繁为简

钝悟...大约 13 分钟笔记分布式分布式理论分布式理论
逻辑时钟

逻辑时钟

什么是逻辑时钟

1978 年,Lamport 在 Time, Clocks, and the Ordering of Events in a Distributed System 中提出了逻辑时钟的概念,来解决分布式系统中区分事件发生的时序问题。

逻辑时钟指的是分布式系统中用于区分事件的发生顺序的时间机制


钝悟...大约 8 分钟分布式分布式理论分布式理论逻辑时钟全序偏序
ZAB 协议

ZAB 协议

ZooKeeper 并没有直接采用 Paxos 算法,而是采用了名为 ZAB 的一致性协议。ZAB 协议不是 Paxos 算法,只是比较类似,二者在操作上并不相同。Multi-Paxos 实现的是一系列值的共识,不关心最终达成共识的值是什么,不关心各值的顺序。而 ZooKeeper 需要确保操作的顺序性。

ZAB 协议是 Zookeeper 专门设计的一种支持崩溃恢复的原子广播协议

ZAB 协议是 ZooKeeper 的数据一致性和高可用解决方案。


钝悟...大约 7 分钟分布式分布式理论分布式理论算法共识性ZAB
《HBase A NoSQL database》笔记

《HBase: A NoSQL database》笔记

简介

HBase 是一种 NoSQL 数据库,它是Java版本的 Google’s Big Table 实现,它原本是 Hadoop 的子项目,现在已独立出来,并成为 apache 的顶级项目。

HBase 的设计目标是用于存储大规模数据集。HBase 是列式数据库,与传统行式数据库相比,其非常适合用于存储稀疏性的数据。

HBase 是基于 HDFS 实现的。

HBase 和历史

HBase 关键特性:

  • 水平扩展
  • 分区容错性
  • 支持并行处理
  • 支持 HDFS 和 MapReduce
  • 近实时查询
  • 适用于存储大规模数据集
  • 适用于存储稀疏型数据(宽表)
  • 表的动态负载均衡
  • 对于大规模的查询,支持块缓存和布隆过滤器

钝悟...大约 2 分钟笔记分布式分布式存储分布式分布式存储HBASE
《The Log-Structured Merge-Tree (LSM-Tree)》笔记

《The Log-Structured Merge-Tree (LSM-Tree)》笔记

LSM 被广泛应用于很多以文件结构存储数据的数据库,如:HBase, Cassandra, LevelDB, SQLite。

LSM 的设计目标:通过顺序写来提高写操作吞吐量,替代传统的 B+ 树或 ISAM。

参考资料


钝悟...小于 1 分钟笔记分布式分布式存储分布式分布式存储HBASE
《24 讲吃透分布式数据库》笔记

《24 讲吃透分布式数据库》笔记

开篇词 吃透分布式数据库,提升职场竞争力

导论:什么是分布式数据库?聊聊它的前世今生

分布式数据库的核心

数据分片

  • 水平分片:按行进行数据分割,数据被切割为一个个数据组,分散到不同节点上。

  • 垂直分片:按列进行数据切割,一个数据表的模式(Schema)被切割为多个小的模式。

数据同步

数据库同步用于帮助数据库恢复一致性。

分布式数据库发展就是一个由合到分,再到合的过程


钝悟...大约 11 分钟笔记分布式分布式存储分布式分布式存储
《Dubbo 源码解读与实战》笔记

《Dubbo 源码解读与实战》笔记

开篇词 深入掌握 Dubbo 原理与实现,提升你的职场竞争力

Apache Dubbo是一款高性能、轻量级的开源 Java RPC 框架,它提供了三大核心能力:

  • 面向接口的远程方法调用;
  • 可靠、智能的容错和负载均衡;
  • 服务自动注册和发现能力。

Dubbo 是一个分布式服务框架,致力于提供高性能、透明化的 RPC 远程服务调用方案以及服务治理方案,以帮助我们解决微服务架构落地时的问题。


钝悟...大约 21 分钟笔记分布式分布式通信分布式分布式通信RPCDubbo
《分布式技术原理与算法解析》笔记

《分布式技术原理与算法解析》笔记

开篇词丨四纵四横,带你透彻理解分布式技术

分布式缘何而起:从单兵,到游击队,到集团军

分布式系统的指标:啥是分布式的三围

分布式互斥:有你没我,有我没你

分布式选举:国不可一日无君

分布式共识:存异求同

分布式事务:Allornothing

分布式锁:关键重地,非请勿入

答疑篇:分布式技术是如何引爆人工智能的?

分布式体系结构之集中式结构:一人在上,万人在下


钝悟...大约 9 分钟笔记分布式分布式理论分布式理论
《RocketMQ 技术内幕》笔记

《RocketMQ 技术内幕》笔记

读源代码前的准备

RocketMQ 源代码的目录结构

  • broker:broker 模块(broker 启动进程) 。
  • client:消息客户端,包含生产者、消息消费者相关类。
  • common:公共包。
  • dev:开发者信息(非源代码) 。
  • distribution:部署实例文件夹(非源代码) 。
  • example:RocketMQ 示例代码。
  • filter:消息过滤相关基础类。
  • filter:消息过滤服务器实现相关类(Filter 启动进程) 。
  • logappender:日志实现相关类。
  • namesrv:N ameServer 实现相关类(Names 巳 rver 启动进程) 。
  • openmessaging:消息开放标准,正在制定中。
  • remoting:远程通信模块,基于 Netty 。
  • srvutil:服务器工具类。
  • store:消息存储实现相关类。
  • style:checkstyle 相关实现。
  • test:测试相关类。
  • tools:工具类,监控命令相关实现类。

钝悟...大约 21 分钟笔记分布式分布式通信分布式分布式通信MQRocketMQ
2
3
4
5
...
8