这是我参与「第五届青训营 」伴学笔记创作活动的第 11 天。今天学习了分布式理论的基本概念和相关知识。
什么是分布式
分布式系统是计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现共同的目标。分布式的具体应用包含分布式计算、分布式存储、分布式数据库等。
以下是常见的分布式系统
故障类型
分布式系统存在一些单机系统没有的挑战,按故障可分为以下类型。
拜占庭将军问题
共识和一致性问题
分布式理论
CAP理论
C:多个副本一致性、A:服务的可用性、P:分布式不同分区的容错性。
ACID理论
事务是数据库管理系统执行过程中的一个基本操作,ACID是事务的四个特性。
原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability)
BASE理论
BASE理论是对CAP中一致性和可用性权衡的结果,其来源于对大型互联网分布式时间的总结,是基于CAP定理逐步演化而来。
核心思想:
Basically Available(基本可用):假设系统出现了不可预知的故障,但还是能用。
Soft state(软状态):允许系统中数据存在中间态,并认为该状态不影响系统的整体可用性,即允许系统在多个不同节点的数据副本存在数据延时。
Eventually consistent(最终一致性):系统能够保证在没有其他新的更新操作情况下,数据最终一定能够达到一致的状态,因此所有客户端对系统的数据访问最终都获取到最新的值。