分布式理论学习笔记| 青训营笔记

31 阅读2分钟

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

今天学习分布式理论,本次大项目也想将各种微服务进行分布式部署的实践。

分布式理论--现代架构基石

分布式系统是计算机程序的集合,利用跨多个独立计算节点的计算资源来实现共同的目标,分为:分布式计算(Hadoop、Spark、YARN)、分布式存储(GFS、Ceph、Hadoop HDFS、Zookeeper)、分布式数据库(Google Spanner、TiDB、HBase、MongoDB)等。

image.png

学习者视角目的:

1、后端开发必备技能。2、帮助理解后台服务器之间协作的机理。3、掌握分布式理论。2、了解一致性协议。

故障模型

讲解了故障模型。 image.png

拜占庭将军问题引出TCP三次握手和共识一致性问题

Eventually consistent(最终一致性):当C写入完成后,A和B最终能读到一致的数据。

image.png Linearizability(线性一致性):将版本更新的x=1后,即使将信息同步给其他客户端。

image.png

CAP理论:

  • C(Consistence):一致性,指数据在多个副本之间能够保持一致的特性(严格的一致性)
  • A(Availability):可用性,指系统提供的服务必须一直处于可用的状态,每次请求都能获得到非错的响应--但是不保证获取的数据为最新数据。
  • P(Network Partitioning):分区容错性,分布式系统在遇到任何网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务,除非整个网络环境都发生了故障。 CAP理论只能三选二。
  1. CA:放弃分区容错性,加强一致性和可用性,其实就是传统的单机数据库的选择。
  2. AP:放弃强一致性,注重用户体验的系统。
  3. CP:放弃可用性,追求一致性和分区容错性,与钱财安全相关的系统。 image.png

中场总结:

后续还有ACID理论和BASE理论,下一笔记再做阐述。这些理论都是较为经典的,也是经实践检验的。