分布式理论|青训营笔记

119 阅读2分钟

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

分布式概述

分布式系统是计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现共同的目标。

可以分为分布式计算、分布式存储、分布式数据库等。

具有去中心化、低成本、高弹性、资源共享、高可靠性等优势。

使用难点:理清规模、负载,一致性要求等;明确稳定性要求,制定好技术方案

学习重点:掌握分布式理论;了解一致性协议

常见分布式系统

分布式存储:Google File System,Ceph,Hadoop HDFS,Zookeeper

分布式数据库:Google Spanner,TiDB,HBase,MongoDB

分布式计算:Hadoop,Spark,YARN

系统模型

image.png

理论基础

CAP理论

C:一致性,指数据在多个副本之间能够保持一致的特性

A:可用性,指系统提供服务一直处于可用状态,每次请求都能获取最新数据

P:分区容错性,除非整个网络环境发生故障,否则分布式系统都能对外提供一致性和可用性

ACID理论

原子性(A):事务包含所有的操作要么全部成功,要么全部回滚

一致性(C):事务必须使数据库从一个一致性状态变换到另一个一致性状态

隔离性(I):并发事务不互相干扰

持久性(D):事务一旦提交,对数据库的改变是永久性的

BASE理论

Basically Available

Soft state:允许系统数据存在中间状态

Eventually consistent

分布式事务

二阶段提交

image.png

三阶段提交

将两阶段提交中的Prepare阶段,拆分成CanCommit和PreCommit机制 还引入超时机制。

image.png

MVCC

image.png

共识协议

Quorum NWR模型

N:有多少份备份数据

W:一次成功更新至少有w份数据写入成功

R:一次成功读数据操作至少有R份数据成功读取

RAFT协议

image.png