Day9 分布式初探 | 青训营笔记

65 阅读2分钟

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

发展

分布式系统的发展始于20世纪60年代,当时的目标是使用多台计算机来提高计算能力和数据存储能力。随着时间的推移,分布式系统的概念逐渐演变为在网络中的多台计算机之间共享资源和协同工作。

有影响力的分布式理论包括:

  1. 分布一致性理论:提出了在分布式系统中多个节点之间如何达成一致性的方法。例如,Paxos和Raft算法。
  2. 分布式存储理论:研究如何在分布式环境中存储和管理数据。例如,Google的Bigtable和Amazon的DynamoDB。
  3. 分布式计算理论:研究如何在分布式环境中进行大规模计算。例如,Google的MapReduce和Apache的Hadoop。
  4. 分布式协调理论:研究如何在分布式环境中协调和管理多个节点。例如,ZooKeeper和etcd。

Paxos

Paxos算法是一种分布式一致性算法,用于在分布式系统中达成共识。它提供了一种通用方法来协调多个进程之间的操作。

Paxos算法主要分为三个步骤:

  1. Propose: 一个进程向其他进程提出一个值,并将其编号为n
  2. Accept: 其他进程接受或拒绝这个值。如果接受,它们也会将这个值的编号标记为n
  3. Decide: 当一个值被大多数进程接受,它就会被决定。

Raft

Raft算法是一种分布式一致性算法,类似于Paxos。它是为了解决Paxos算法中的一些复杂性而提出的。

Raft算法流程如下:

  1. 选举:当一个节点发现它没有领导者时,它会发起一次选举。
  2. 提交日志:领导者接受客户端的请求并将其追加到它的日志中。
  3. 同步日志:领导者将日志同步到其他节点上,并等待它们的确认。
  4. 实施:当领导者收到大多数节点的确认后,它会应用这些日志条目,并将它们标记为已实施。