[分布式理论|青训营笔记]

99 阅读2分钟

[分布式理论|青训营笔记] 这是我参加「第五届青训营伴学笔记的第四天

前言

记录青训营后端专场学习过程,有不足的地方还请大佬指正。 由于本人基础较为薄弱,所以笔记尽可能详细。


分布式概述

一、解决分布式系统的why-how-what问题

使用者视角:

why:

  • 数据爆炸,对存储和计算有大规模运用的诉求
  • 成本低,构建在廉价的服务器上

how:

  • 分布式框架
  • 成熟的分布式系统

what:

  • 理清规模、负载、一致性的要求
  • 明确稳定性要求,制定技术方案

学习者角度

why:

  • 后端开发必备技能
  • 帮助后台服务器之间协作的机理

how:

  • 掌握分布式理论
  • 了解一致性协议

what:

  • 将要点深入展开,针对难点搜索互联网资料进行学习
  • 将所学知识运用于实践

二、常见的分布式系统

截屏2023-02-13 11.12.38.png

系统模型

故障模型

各种故障类型的层级关系如下图: 截屏2023-02-13 11.14.20.png

  • Byzantine failure:节点可以任意篡改发送给其他节点的数据
  • Authentication-detectable Byzantine failure:是Byzantine failure的一个特例;节点可以篡改数据,但不能伪造其他节点的数据
  • Performance failure:节点未在特定时间段收到数据,即时间太早或太晚
  • Omission failure:节点收到数据的时间无限晚,即收不到数据
  • Crash failure:在omission failure的基础上,增加了节点停止响应的假设,也持续性的omission failure
  • Fail-stop failure:在Crash failure的基础上,增加了错误可检测的假设

理论基础

CAP理论

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

分布式事务

共识协议

分布式实践