分布式理论 | 青训营笔记

69 阅读2分钟

这是我参与「第五届青训营」伴学笔记创作活动的第8天 image.png 一、本堂课重点内容:

本堂课主要是讲述了分布式的相关概念。

二、分布式概述

分布式系统是计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现共同的目标。可以分为分布式计算、分布式存储、分布式数据库等。

优势:

  • 去中心化
  • 低成本
  • 弹性
  • 资源共享
  • 可靠性高

挑战:

  • 普遍的节点故障
  • 不可靠的网络
  • 异构的机器与硬件环境
  • 安全

三、系统模型

故障模型:

  • Byzantine failure:节点可以任意篡改发送给其他节点的数据

  • Authentication detectable byzantine failure

    (ADB):Byzantine failure的特例;节点可以篡改数据,但不能伪造其他节点的数据

  • Performance failure:节点未在特定时间段内收到数据,即时间太早或太晚

  • Omission failure:节点收到数据的时间无限晚,即收不到数据

  • Crash failure:在omission failure的基础上,增加了节点停止响应的假设,也即持续性地omission failure

  • Fail-stop failure:在Crash failure的基础上增加了错误可检测的假设

故障

拜占庭将军问题:两支军队派遣信使互相通信,求解在信使可能被俘虏的情况下两者达成进攻时间共识

TCP三次握手在两个方向确定包的序列号,增加了超时重试,是两将军问题的一个工程解

CAP理论

C 代表着一致性,数据在多个副本之间能够保持一致 A 代表可用性,系统提供的服务一直处于可用状态,每次都能得到非错的响应,但不保证是最新的. P 代表分区容错性,分布式系统遇到网络分区故障的时候,仍然提供对外一致满足一致性和可用性的服务

ACID理论

A,原子性指的是事务的操作要么全部成功,要么全部失败回滚. C,表示一个事务执行前和执行后都必须处于一致性状态 I,隔离性,是多个用户并发访问数据库,数据库未每一个用户开启的事务都要互相隔离. D,持久性,事务提交了,对数据库中数据的改变是永久性的,遇到故障的情况下也不会丢失提交事务的操作