这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天
主要内容
分布式概述
什么是分布式
分布式系统是计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现共同的目标。可以分为分布式计算、分布式存储、分布式数据库等。
分布式系统的优势:
- 去中心化
- 低成本
- 弹性
- 资源共享
- 可靠性高
分布式系统的挑战
- 普遍的节点故障
- 不可靠的网络
- 异构的机器与硬件环境
- 安全
常见的分布式系统
- 分布式存储
- 分布式数据库
- 分布式计算
系统模型
故障模型
- Byzantine failure:节点可以任意篡改发送给其他节点的数据
- Authentication detectable byzantine failure(ADB): Byzantine failure的特例节点可以篡改数据,但不能伪造其他节点的数据
- Performance failure:节点未在特定时间段内收到数据,即时间太早或太晚
- Omission failure:节点收到数据的时间无限晚,即收不到数据
- Crash failure:在omission failure的基础上,增加了节点停止响应的假设,也即持续性omission failure
- Fail-stop failure:在Crash failure的基础上增加了错误可检测的假设
理论基础
CAP理论
CAP理论往往运用于数据库领域,同样可以适用于分布式存储方向
CA:放弃分区容错性,加强一致性和可用性,其实就是传统的单机数据库的访择
AP:放弃一致性(这里说的一致性是强─致性),追求分区容错性和可用性,例如一些注重用户体 验的系统
CP:放弃可用性,追求一致性和分区容错性,例如与钱财安全相关的系统
ACID理论
原子性
一致性
隔离性
持久性
BASE理论
Base理论是对CAP中一致性和可用性权衡的结果,其来源于对大型互联网分布式实践的总结,是基于CAP定理逐步演化而来的。其核心思想是:
- Basically Available(基本可用):假设系统,出现了不可预知的故障,但还是能用,相比较正常的系统而言:响应时间上的损失,或功能上的损失
- Soft state (软状态)︰允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,即允许系统在多个不同节点的数据副本存在数据延时。
- Eventually consistent(最终一致性)︰系统能够保证在没有其他新的更新操作的情况下,数据最终一定能够达到一致的状态,因此所有客户端对系统的数据访问最终都能够获取到最新的值。