分布式理论| 青训营笔记

62 阅读2分钟

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

什么是分布式

分布式是计算机程序的集合,利用多个独立计算节点的计算资源来实现共同的目标,比如分布式计算,分布式存储,分布式数据库等. 优势: 去中心化,低成本,弹性,资源共享,可能性高. 问题: 安全问题,异构问题,网络问题,节点故障

WHW

为什么要使用分布式?

  1. 数据爆炸,有存储,计算等大规模运用的诉求
  2. 成本低,可以构建在廉价服务器上.

对于学习者来说,是后端必备的开发技能,能够帮助理解后台服务器之间写作的原理

这么使用分布式

  1. 使用分布式框架
  2. 使用成熟的分布式系统

对学习者来说,可以掌握分布式理论,了解一致性的协议

常见的分布式存储

分布式存储

  1. ZooKeeper, 高可用的分布式数据和西他协调框架
  2. Google File System 骨骼分布式文件系统

分布式数据库

  1. MongoDb, 数据库文档
  2. GoogleSpanner: 谷歌可扩展的全球分布式数据库 分布式计算
  3. YARN 分布式资源调度

故障模型

  1. Byzantine failure 阶段可以篡改发送给其他节点的数据
  2. ADB 节点可以篡改数据,但不能伪造其他节点的数据
  3. PF 节点未在特定时间段内受到数据,太早或者太晚
  4. OF 节点收到数据的时间无限晚
  5. Crash Failure 在上面的基础上,添加了节点响应的假设
  6. Fail stop failure 在上面的基础上添加了错误可检测的假设

CAP理论

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

ACID理论

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