1.1 KiB
1.1 KiB
WARO: Write ALl Read One
当客户端向一个分布式应用发送写请求的时候,只有当所有的副本节点都更新成功之后,这次写操作才算成功。否则视为失败。这降低了写操作的可用性,提高了读操作的可用性。
Quorm: 最终一致性
假设有N个副本,客户端向一个分布式应用发送写请求的时候,如果有W个副本更新成功之后,这次写操作才算成功。则读操作最多需要读N-W个副本就能读取到最新的结果。
Quorm无法保证强一致性,它是分布式系统中常用的一种机制,用来保证数据冗余的最终一致性的投票算法。Kafka的ISR机制有点类似该机制。
Paxos算法
有三类角色节点:
- Proposer 提案者
一个或多个提案者提出操作(例如修改值),多个提案者可以提出不同的操作,经过一轮Paxos算法后,只有一个提案者被运行执行
- Acceptor 批准者
设有N个批准者,提案者提出的操作,必须获得半数以上的批准者批准后才能通过执行
- Learner 学习者
学习者不参与上述行为,而是执行被批准者批准的操作