分布式总结

2023跨年夜,本来想去光环跨年,没想到门票300,选择吃了顿大餐放弃狂欢,正好刚看微服务,就顺便复习下分布式的原理

CAP

CAP 也就是 Consistency(一致性)Availability(可用性)Partition Tolerance(分区容错性) 这三个单词首字母组合。

  • 一致性 : 所有节点访问同一份最新的数据副本
  • 可用性: 非故障的节点在合理的时间内返回合理的响应(不是错误或者超时的响应)。
  • 分区容错性 : 分布式系统出现网络分区的时候,仍然能够对外提供服务。

在理论计算机科学中,CAP 定理(CAP theorem)指出对于一个分布式系统来说,当设计读写操作时,只能同时满足以下三点中的两个。在发生网络分区问题时,CAP 理论中分区容错性 P 是一定要满足的,在此基础上,只能满足可用性 A 或者一致性 C。如果网络分区正常的话(系统在绝大部分时候所处的状态),也就说不需要保证 P 的时候,C 和 A 能够同时保证。

BASE

BASE 是指基本可用、软状态、最终一致性(Basically Available, Soft state, Eventually consistent)

  • 基本可用:系统必须保证基本的可用性,即使在出现故障或部分失效的情况下也能够保证核心功能的正常运行。
  • 软状态:系统允许存在中间状态,而这些中间状态不会影响系统的整体可用性。在分布式系统中,由于网络通信延迟和故障等因素的存在,节点之间的状态可能不完全一致,但系统应该能够容忍这种状态,并在一定时间内达到一致性。
  • 最终一致性:系统保证在一定时间内达到数据的一致性要求,即更新操作最终会被所有节点接受并达到一致状态。在一段时间内,数据可能处于不一致状态,但最终会达到一致状态。

Base是对 CAP 中 AP 方案的一个补充,即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性。

Paxos 算法

Paxos 算法是第一个被证明完备的分布式系统共识算法。共识算法的作用是让分布式系统中的多个节点之间对某个提案(Proposal)达成一致的看法。提案的含义在分布式系统中十分宽泛,像哪一个节点是 Leader 节点、多个事件发生的顺序等等都可以是一个提案。

  • Basic Paxos 算法:描述的是多节点之间如何就某个值(提案 Value)达成共识。
  • Multi-Paxos 思想:描述的是执行多个 Basic Paxos 实例,就一系列值达成共识。          

Basic Paxos 中存在 3 个重要的角色:

提议者(Proposer):也可以叫做协调者(coordinator),提议者负责接受客户端的请求并发起提案。提案信息通常包括提案编号 (Proposal ID) 和提议的值 (Value)。

接受者(Acceptor):也可以叫做投票员(voter),负责对提议者的提案进行投票,同时需要记住自己的投票历史;

学习者(Learner):如果有超过半数接受者就某个提议达成了共识,那么学习者就需要接受这个提议,并就该提议作出运算,然后将运算结果返回给客户端。

你可能感兴趣的:(分布式)