分布式理论 | 青训营笔记

54 阅读2分钟

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

什么是分布式

  • 分布式系统是计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现共同的目标。可以分为分布式计算,分布式存储,分布式数据库。
  • 优势:去中心化、低成本、弹性、资源共享、可靠性高
  • 挑战:普遍的节点故障、不可靠的网络、异构的机器与硬件环境、安全。

常见的分布式系统

QQ图片20230202100555.png

共识和一致性

  • 读请求和写请求并发时可能读到旧值。最终一致性。
  • 一旦某个读取到新值,所有客户端都必须返回新值。线性一致性

CAP理论

QQ图片20230202100555.png

  • CAP理论往往用于数据库领域,同样也适用于分布式存储方向。

  • C、A、P中舍弃一种,加强另外两种,可以实现出适用于不同场景的数据库。

网络发生分区的情况下,必须在可用性和一致性之间做出选择,近似解决办法是将故障节点的负载转移给备用节点负责。

ACID理论

事务是数据库中执行过程中的一个逻辑单元,它能保证一个事务中的所有操作要么全部执行,要么全部不执行。

数据库事务有四个特性:

  • A: 原子性
  • B:一致性
  • C:隔离性
  • D:持久性

BASE理论

BASE理论是对CAP中一致性和可用性权衡的结果,其核心思想如下:

QQ图片20230202100555.png

MVCC

  • 悲观锁:操作数据时直接把数据锁住,直到操作完成才会释放锁。
  • 乐观锁:不会上锁,只是在执行更新时判断别人是否修改数据,只有冲突的时候放弃操作。

MVCC是一种并发控制的方法,维持一个数据的多个版本使得读写操作没有冲突。所以既不会阻塞写,也不会阻塞读。MVCC为每个修改保存一个版本,和事务的时间戳相关联。可以提高并发性能,解决脏读的问题。

Quorum NWR三要素

QQ图片20230202100555.png

Raft协议使用了Quorum机制。

分布式协议

Raft协议、Paxos协议

分布式实践

MapReduce