这是我参与「第五届青训营 」伴学笔记创作活动的第 13 天
一、分布式概述
1. 什么是分布式
分布式系统是计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现共同目标。
(1)分类
🥞 分布式计算
🥞 分布式存储
🥞 分布式数据库
(2)优势
🥞 去中心化
🥞 低成本
🥞 弹性
🥞 资源共享
🥞 可靠性高
(3)挑战
🥞 普遍的节点故障
🥞 不可靠的网络
🥞 异构的机器和硬件环境
🥞 安全
2. why-how-what
3. 常见的分布式系统
二、系统模型
1. 故障模型
2. 拜占庭将军问题
3. 共识和一致性
4. 时间和事件顺序
三、理论基础
1. CAP理论
🥞 C(Consistence):一致性,指数据在多个副本之间能够保持一致的特性(严格的一致性)
🥞 A(Availability):可用性,指系统提供的服务必须一直处于可用的状态,每次请求都能获取到非错的响应(但是不保证获取的数据为最新的数据)
🥞 P(Network partitioning):分区容错性,分布式系统在遇到任何网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务,除非整个网络环境都发生了故障。
2. ACID理论
🥞 事务是数据库系统中非常重要的概念,它是数据库管理系统执行过程中的一个逻辑单元,它能够保证一个事务中的所有操作要么全部执行,要么全都不执行。
3. BASE 理论
四、分布式事务
1. 二阶段提交
2. 三阶段提交
3. MVCC
🥞 MVCC 是一种并发控制的方法,维持一个数据的多个版本,使读写操作没有冲突。所以既不会阻塞写,也不会阻塞读。MVCC 为每个修改保存一个版本,和事务的时间戳相关联。可以提高并发性能,解决脏读问题。