8分布式理论| 青训营笔记

71 阅读2分钟

这是我参与「第五届青训营 」笔记创作活动的第8天

分布式理论

分布式概述 什么是 why how what 常见的

系统模型 故障模型 拜占庭将军问题 共识和一致性 时间和事件顺序

理论基础 CAP ACID BASE

分布式事务 两阶段提交 三段提交 MVCC

共识协议 Quorum NWR模型 RAFT协议 Paxos协议

分布式实践 MapReduce 分布式KV

什么是分布式 计算机程序集合 利用跨多个独立计算节点的计算资源来实现共同的目标。 可以分为分布式计算、分布式存储、分布式数据等

优势: 去中心化 低成本 弹性 资源共享 可靠性高

挑战 普遍的节点故障 不可靠的网络 异构的机器与硬件环境 安全

why 数据爆炸 存储计算大规模运用诉求 成本低

how 分布式框架 成熟的分布式系统

what 理清规模 负载 一致性要求等 明确稳定性要求 制定技术方案

学习者 why后端开发必备技能 帮助理解后台服务器之间写作的机理

how 掌握分布式理论 了解一致性协议

what 要点深入展开 运用实践

常见的分布式系统 分布式存储 分布式数据库 分布式计算

系统模型

故障模型 Byzantine failure Authentication detectable byzantine failure(ADB) Performance failure Omission failure Crash failure Fail-stop failure

拜占庭将军问题 理论上永远无法达成共识

3m+1 m个叛徒 m轮协商 最终达成一致

共识和一致性 最终一致性 线性一致性

时间和事件顺序

Lamport逻辑时钟 Ci(a) Ci(a)<Ci(b)相同Pi a在b前发生 Ci(a)<Cj(b)a节点Pi发送 b节点Pj接受

理论基础

CAP理论 C (Consistence) A (Availability) P (Network partitioning) CA 放弃分区容错性 传统单机数据库 AP 放弃一致性 注重用户体验系统 CP 放弃可用性 钱财安全相关系统

ACID理论 原子性(A)Atomicity 一致性(C)Consistency 隔离性(I)Isolation 持久性(D)Durability

Base理论 Basically Avalable基本可用 Soft state 软状态 Eventually consistent最终一致性

分布式事务 二阶段提交 三个假设 协调者 参与者 互相进行网络通信 预写式日志 可靠存储设备上 所有节点不会永久性损坏 损坏后仍可恢复

二阶段提交 1性能问题 2协调者单点故障问题 3网络分区带来的数据不一致

三阶段提交 CanCommit 和PreCommit机制

解决了两个问题 1单点故障问题 2阻塞问题

引入超时机制 等待超时后会继续事务的提交

MVCC 悲观锁 乐观锁

MVCC并发控制方法 维持数据多个版本式读写操作没有冲突

时间戳语预言机(TSO)中心化授时方式,简单方便产生网络通信成本

共识协议 Quorum NWR模型 N:有多少备份数据 W:一次成功更新操作至少有w份数据写入成功 R:代表一次成功读数据操作至少R份数据成功读取

保证强一致保证W+R>N

RAFT协议 分布式一致性算法 Leader Follwoer Candidate

Log Term(任期号) Committed Applied