分布式理论|青训营笔记

66 阅读3分钟

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

理论基础

CAP理论

  • C (Consistence) 一致性。指数据在多个副本之间能够保持一致的特性(严格的一致性)
  • A (Availability) 可用性,指系统提供的服务必须一直处于可用的状态,每次请求都能获取到非错的响应一但是不 保证获取的数据为最新数据。
  • P (Network partitioning) 分区容错性,分布式系统在遇到任何网络分区故障的时候,仍然能够对外提供满足一致性和可用性 的服务,除非整个网络环境都发生了故障。

CAP理论往往运用于数据库领域,同样可以适用于分布式存储方向。

CA:放弃分区容错性,加强一致性和可用性, 其实就是传统的单机数据库的选择。

AP:放弃一致性(这里说的一致性是强一致性), 追求分区容错性和可用性,例如一些注重用户体验的系统。

CP:放弃可用性,追求一致性和分区容错性,例如与钱财安全相关的系统。

在网络发生分区的情况下,我们必须在可用性和一致性之间做出选择。近似解决办法: 把故障节点的负载转移给备用节点负责。

ACID理论

事务是数据库系统中非常重要的概念,它是数据库管理系统执行过程中的一一个逻辑单元,它能够保证一个事务中的所有操作要么全部执行,要么全都不执行。数据库事务拥有四个特性ACID,即分别是原子性(Atomicity)、一致性(Consistency) 、隔离性(Isolation) 和持久性 ( Durability)。

  • 原子性(A)。原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。
  • 一致性(C)。一致性是指事务必须使数据库从-一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之 后都必须处于致性状态
  • 隔离性(I)。隔离性是当多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离
  • 持久性(D)。持久性是指一个事务一旦被提交了 ,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。

BASE理论

Base理论是对CAP中-致性和可用性权衡的结果,其来源于对大型互联网分布式实践的总结,是基于CAP定理逐步演化而来的。其核心思想是:

  • Basically Available(基本可用):假设系统,出现了不可预知的故障,但还是能用,相比较正常的系统而言:响应时间上的损失,或功能上的损失
  • Soft state ( 软状态) :允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,即允许系统在多个不同节点的数据副本存在数据延时。
  • Eventually consistent (最终一致性) :系统能够保证在没有其他新的更新操作的情况下,数据最终一定能够达到一 致的状态, 因此所有客户端对系统的数据访问最终都能够获取到最新的值。