第一章主要介绍了计算机系统从集中式向分布式系统演变过程中面临的挑战,并简要介绍了ACID、CAP和BASE等经典分布式理论,主要包含以下内容:
集中式的特点:部署结构简单(因为基于底层性能卓越的大型主机,不需考虑对服务多个节点的部署,也就不用考虑多个节点之间分布式协调问题)
分布式的特点:
分布式环境的各种问题:
事务是由一系列对系统中数据进行访问与更新的操作所组成的一个程序执行逻辑单元,狭义上的事务特指数据库事务。
事务有四个特性,分别是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),简称为事务的ACID特性。
事务四种隔离级别有未授权读取、授权读取、可重复读取和串行化。
四种隔离级别的对比
隔离级别 | 脏读 | 可重复读 | 幻读 |
---|---|---|---|
未授权读取 | 存在 | 不可以 | 存在 |
授权读取 | 不存在 | 不可以 | 存在 |
可重复读取 | 不存在 | 可以 | 存在 |
串行化 | 不存在 | 可以 | 不存在 |
事务隔离级别越高,就越能保证数据的完整性和一致性,但对并发性能的影响也越大。优先考虑将数据库的隔离级别设置为授权读取,能够避免脏读同时保证较好并发性能,会导致不可重复读、虚读和第二类丢失更新等并发问题,在可能出现这类问题的场合中,应主动采用悲观锁和乐观锁进行事务控制。
分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于分布式系统的不同节点之上。也可以被定义为一种嵌套型的事务,同时也具有了ACID事务特性。
CAP理论:一个分布式系统不可能同时满足一致性、可用性和分区容错性。
从CAP定理看出,一个分布式系统不可能同时满足一致性、可用性和分区容错性这三个需求。对于一个分布式系统,分区容错性是一个最基本的需求。
BASE理论:是Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)三个短语的简写。核心思想是即使无法做到强一致性,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。
最终一致性存在以下五类变种:
总得来说BASE理论面向的是大型高可用可扩展的分布式系统,完全不同于ACID的强一致性模型,而是通过牺牲强一致性来获取可用性,并允许数据在一段时间内是不一致的,但最终达到一致状态。实际分布式场景中,ACID特性和BASE理论会结合在一起。