这是我参与「第五届青训营」伴学笔记活动的第七天
分布式系统是计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现共同的目标。可以分为分布式计算、分布式存储、分布式数据库等。
优势:
- 去中心化
- 低成本
- 弹性
- 资源共享
- 可靠性高
挑战:
1 普遍的节点故障
2 不可靠的网络
3 异构的机器和环境
4 安全性
拜占庭将军问题
CAP理论:
C:一致性,数据在多个副本之间保证严格一致性
A:可用性,系统提供的服务一直处于可用状态
P:分区容错性,分布式系统在遇到任何网络分区故障时,仍然能够对外提供满足一致性和可用性服务。
-
CA系统:传统数据库的代表
-
AP系统:放弃强一致性,保证高可用,不少nosql存储系统采用
-
CP系统:放弃可用性,保证数据一致性
-
ACID理论是针对CA系统而言的,通常在数据库中具有广泛意义
-
事务是数据库系统中非常重要的概念,它是数据库管理系统执行过程中的一个逻辑单元,它能够保证一个事务中的所有操作要么全部执行,要么全都不执行
-
数据库事务拥有四个特性ACID:\
-
原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)
BASE:
BASE理论是针对AP系统而言的,其来源于对大型互联网分布式实践的总结
Basically Available(基本可用):假设系统,出现了不可预知的故障,但还是能用
Soft state(软状态):允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性
Eventually consistent(最终一致性):数据最终一定能够达到一致的状态
Quorum NWR模型
-
三要素:
- N:在分布式存储系统中,有多少份备份数据
- W:代表一次成功的更新操作要求至少有w份数据写入成功
- R: 代表一次成功的读数据操作要求至少有R份数据成功读取
- 为了保证强一致性,需要保证 W+R>N
-
Quorum NWR模型将CAP的选择交给用户,是一种简化版的一致性模型
-
引起的并发更新问题
- 如果允许数据被覆盖,则并发更新容易引起一致性问题