分布式理论基础 | 青训营笔记

136 阅读3分钟

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

CAP理论

CAP即:

  • Consistency(一致性)
  • Availability(可用性)
  • Partition tolerance(分区容错性)

但是CAP理论说的是:一个分布式系统,不可能同时做到这三点。

三类系统:

  • CA系统:传统数据库的代表
  • AP系统:放弃强一致性,保证高可用,不少nosql存储系统采用
  • CP系统:放弃可用性,保证数据一致性

当出现故障的时候,如何选择不同的CAP系统,以及将带来什么样的影响

  • CP系统:故障发生时,为了避免读到不一致的数据,可能拒绝访问
  • AP系统:故障发生时,为了保证可用性,允许不同进程读到不同的数据

针对故障场景,可以通过故障转移的方式,做一个相对较优的解决方式:允许一个进程作为Master,其他进程作为Backup,当故障时将请求转移给Backup进行处理

ACID理论

ACID理论是针对CA系统而言的,是数据库为了保证事务正确性而提出的一种理论,它包含四个约束:

  • 原子性(Atomicity):组成事务的一组操作,要么全部成功,要么全部失败,不会在中间的某个环节结束。如果在事务的执行过程中,某个操作失败了,数据库会回滚到事务开始前的状态,就像这个事务从来没有执行过一样。
  • 一致性(Consistency):事务执行前后,数据库的完整性没有被破坏,事务执行的前后都是合法的数据状态。
  • 隔离性(lsolation)︰数据库允许多个事务并发地对数据进行读写。多个事务并发执行会造成脏读,不可重复读,幻读,而隔离性可以防止多个事务交叉执行导致的数据不一致问题。事务的隔离级别有读未提交,读已提交,可重复读,串行化。
  • 持久性(Durability):事务提交后,对数据的修改是持久的,不会因为外部原因丢失。

BASE理论

BASE理论是针对AP系统而言的,是对可用性和一致性的权衡

Basically Available(基本可用)

假设系统,出现了不可预知的故障,但还是能用。

Eventually consistent(最终一致性)

最终一致性的系统不承诺写入数据成功后,立刻就从系统中读出最新的数据,也不承诺具体多久之后可以读到最新的数据,而是尽可能保障特定时间级别之后的数据可用。不管怎样数据最终一定能够达到一致的状态。

Soft state(软状态)  

软状态顾名思义就是可以变动的状态,强调的是数据状态处于一种临界状态。允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性。