learn_note/分布式/分布式一致性算法(即分布式ID生成).md

1.1 KiB
Raw Blame History

WARO: Write ALl Read One

当客户端向一个分布式应用发送写请求的时候,只有当所有的副本节点都更新成功之后,这次写操作才算成功。否则视为失败。这降低了写操作的可用性,提高了读操作的可用性。

Quorm: 最终一致性

假设有N个副本客户端向一个分布式应用发送写请求的时候如果有W个副本更新成功之后这次写操作才算成功。则读操作最多需要读N-W个副本就能读取到最新的结果。

Quorm无法保证强一致性它是分布式系统中常用的一种机制用来保证数据冗余的最终一致性的投票算法。Kafka的ISR机制有点类似该机制。

Paxos算法

有三类角色节点:

  • Proposer 提案者

一个或多个提案者提出操作例如修改值多个提案者可以提出不同的操作经过一轮Paxos算法后只有一个提案者被运行执行

  • Acceptor 批准者

设有N个批准者提案者提出的操作必须获得半数以上的批准者批准后才能通过执行

  • Learner 学习者

学习者不参与上述行为,而是执行被批准者批准的操作