《从Paxos到Zookeeper》读书笔记(一)--分布式架构

2019, Jun 21    

第1章 分布式架构

1.1 从集中式到分布式

集中式的特点:以一台或多台朱计算机组成中心节点、部署结构简单

分布式系统:一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统

分布式的特点

  • 分布性
  • 对等性
  • 并发性
  • 缺乏全局时钟
  • 故障总会发生

分布式环境中存在的各种问题

  1. 通信异常:网络故障等
  2. 网络分区:分布式系统出现局部小集群
  3. 三态:成功、失败、超时
  4. 节点故障

1.2 从ACID到CAP/BASE

事务:由一系列对系统中数据进行访问与更新的操作所组成的一个程序执行逻辑单元,狭义上的事务特质数据库事务。

ACID:事务的四个特征,原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)

原子性:全部执行或全部不执行

一致性:事务的执行不能破坏数据库数据的完整性和一致性,一个事务在执行之前和执行之后,数据库偶读必须处于一致性状态

隔离性:并发的事务互相隔离,一个事务的执行不能被其他事务干扰。

持久性:指一个事务一旦提交,它对数据库中对应数据的状态变更就是永久性的。即使发生系统崩溃或机器宕机等故障,只要数据库能够重新启动,那么一定能够将其恢复到事务成功结束时的状态。

事务的隔离级别:

  1. 读未提交(未授权读取):允许脏读,隔离级别最低。换句话说,如果一个事务正在处理某一数据,并对其进行了更新,但同时尚未完成事务,因此还没有进行事务提交;而与此同时,允许另一个事务也能够访问该数据。
  2. 授权读取(读已提交):只允许读已经被提交的数据。
  3. 可重复读:在事务处理过程中,多次读取同一个数据时,其值都和事务开始时刻是一致的。因此该级别禁止了不可重复读取和脏读。可能出现幻读。
  4. 串行化:最严格。要求所有事务都被穿行执行。

分布式事务:事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于分布式系统的不同节点之上。

CAP定理:一个分布式系统不可能同时满足一致性、可用性(限定时间)和分区容错性这三个基本需求,最多只能同时满足其中的两项。

分区容错性:分布式系统在遇到任何网络分区故障的时候,仍然需要保证能够对外提供满足一致性和可用性的服务除非是整个网络环境都发生了故障。

BASE理论:basically available(基本可用)、soft state(弱状态)、 eventually consistent(最终一致性)三个短语的简写。

  1. 基本可用:响应时间的损失、功能上的损失(服务降级)
  2. 弱状态:允许系统中的数据存在中间状态、并认为该中间状态的存在不会影响系统的整体可用性,即允许系统在不同节点的数据副本之间进行数据同步的过程存在延时。
  3. 最终一致性:需要系统保证数据最终能够达到一致,而不需要实时保证系统数据的强一致性。