分布式理论 | 青训营笔记

32 阅读2分钟

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

分布式

  • 分布式系统定义:跨多个节点的计算机程序的集合
  • 使用分布式系统的五大优势:去中心化、低成本、弹性、资源共享、可靠性高
  • 分布式系统的挑战:故障、网络、环境、安全

常见分布式系统

  • 分布式存储:GFS、Ceph、HDFS、Zookeeper
  • 分布式数据库:Spanner、TiDB、HBase、MangoDB
  • 分布式计算:Hadoop、YARN、Spark

分布式的优点

1、去中心化

区别于将程序部署在一个大的服务器中,部署在由小的服务器组成的集群中会有更高的运行效率,同时也更有利于维护。

2、低成本

大型服务器的成本往往较高,而分布式允许多个小服务器共同作业,减少了服务器成本。

3、弹性

业务人员可以根据流量大小,动态的调整业务能力。比如在高峰期或节假日对服务扩容,或白天采用在线服务而夜晚使用离线计算。

4、资源共享

单服务器的存储能力是有限的,使用分布式可以构成一个大的存储池,进行资源共享。

5、可靠安全

集群中一个节点出现故障,可以用它的副本来替代,保证了服务的可靠性。

CAP

CAP分别是分别代表一致性、可用性、分区容错性,三者不可同时达到。

CAP诞生了三类系统:

  • CA系统:传统数据库的代表
  • AP系统:放弃强一致性,保证高可用,不少nosql存储系统采用
  • CP系统:放弃可用性,保证数据一致性

针对故障场景,可以通过故障转移的方式,做一个相对较优的解决方式,即允许一个进程作为Master,其他进程作为Backup,当故障时将请求转移给Backup进行处理

ACID

ACID分别是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)

BASE

BASE理论是针对AP系统而言的,其来源于对大型互联网分布式实践的总结

  • Basically Available(基本可用):假设系统,出现了不可预知的故障,但还是能用
  • Soft state(软状态):允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性
  • Eventually consistent(最终一致性):数据最终一定能够达到一致的状态