这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天
1.分布式概述
分布式系统是计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现共同的目标。可以分为分布式计算、分布式存储、分布式数据库等。
优势: 去中心化、低成本、弹性、资源共享、可靠性高
挑战: 普遍的节点故障、不可靠的网络、异构的机器与硬件环境、安全
常见的分布式系统: 分布式存储、分布式数据库、分布式计算
具体信息
2.系统模型
①故障模型
②拜占庭将军问题
③共识和一致性 保证最终一致性和线性一致性
④时间和事件顺序
3.理论基础
①CAP理论 CAP理论往往运用于数据库领域,同样可以适用于分布式存储方向,它们可以互相组合
CA:放弃分区容错性,加强一致性和可用性,其实就是传统的单机数据库的选择
AP:放弃一致性(这里说的一致性是强一致性),追求分区容错性和可用性,例如一些注重用户体验的系统
CP :放弃可用性,追求一致性和分区容错性 ,例如与钱财安全相关的系统
②ACID理论
事务是数据库系统中非常重要的概念,它是数据库管理系统执行过程中的一个逻辑单元,它能够保证一个事务中的所有操作要么全部执行,要么全都不执行。
数据库事务拥有四个特性ACID,即分别是原子性( Atomicity )、一致性 ( Consistency )、隔离性( lsolation )和持久性( Durability )
③BASE理论
Base理论是对CAP中一致性和可用性权衡的结果,其来源于对大型互联网分布式实践的总结,是基于CAP定理逐步演化而来的。其核心思想是: Basically Available(基本可用) 、Soft state (软状态) 、Eventually consistent (最终一致性 )
4.分布式事务
①二阶段提交( Two phase Commit) : 为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的一种演算法。
②三阶段提交
③MVCC
5.共识协议
Quorum NWR模型、RAFT协议