这是我参与「第五届青训营 」笔记创作活动的第6天。
一、本堂课重点内容:
-
分布式是什么
- 分布式系统定义:跨多个节点的计算机程序的集合
- 使用分布式系统的五大优势:去中心化、低成本、弹性、资源共享、可靠性高
- 分布式系统的挑战:故障、网络、环境、安全
-
常见分布式系统
- 分布式存储:GFS、Ceph、HDFS、Zookeeper
- 分布式数据库:Spanner、TiDB、HBase、MangoDB
- 分布式计算:Hadoop、YARN、Spark
-
拜占庭将军问题
- 可类比通讯领域的红军蓝军,但侧重点不同,前者侧重一致性,后者侧重可靠性
-
共识和一致性
- 一致性通俗来讲是各分布节点对同一目标、数据的观察与反应是相同的
-
事件顺序与理论基础
- CAP理论
- ACID理论
- BASE理论
-
分布式事务
- 二阶段提交
- 三阶段提交
- MVCC
-
共识协议
- Qunrum NWR模型
- RAFT
- Paxos
二、详细知识点介绍:
CAP
CAP分别是分别代表一致性、可用性、分区容错性,三者不可同时达到。
CAP诞生了三类系统:
- CA系统:传统数据库的代表
- AP系统:放弃强一致性,保证高可用,不少nosql存储系统采用
- CP系统:放弃可用性,保证数据一致性
针对故障场景,可以通过故障转移的方式,做一个相对较优的解决方式,即允许一个进程作为Master,其他进程作为Backup,当故障时将请求转移给Backup进行处理
ACID
ACID分别是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)
事务
事务是数据库系统中非常重要的概念,它是数据库管理系统执行过程中的一个逻辑单元,它能够保证一个事务中的所有操作要么全部执行,要么全都不执行
BASE
BASE理论是针对AP系统而言的,其来源于对大型互联网分布式实践的总结
- Basically Available(基本可用):假设系统,出现了不可预知的故障,但还是能用
- Soft state(软状态):允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性
- Eventually consistent(最终一致性):数据最终一定能够达到一致的状态
三、实践练习例子:
尝试使用Hadoop实现简单的分布式计算,并应用MongoDB实现简单的分布式存储
四、课后个人总结:
分布式系统是当今互联网工业之本,作为后端初学者要养成分布式的思维,不拘泥于单机,并在开发实践中注重使用分布式架构
五、引用参考: