vlambda博客
学习文章列表

笔记-Zookeeper:分布式系统入门到实战

 原文:https://www.youtube.com/watch?v=BhosKsE8up8&t=4438s

什么是一致性

CAP

一致性

可用性

分区容错性

一致性模型

  • 弱一致性

最终一致性:DNS,Gossip

  • 强一致性

同步

Paxos(共识算法)

Raft(multi-paxos)

ZAB(multi-paxos))

强一致性算法-主从同步

主从同步复制

  1. Master接受写请求

  2. Master复制日志到slave

  3. Master等待,直到所有从库返回

问题:一个节点失败,会阻塞

强一致性算法-多数派

大于N/2节点

并发环境下,无法保证系统正确性,顺序非常重要

强一致性算法-Paxos

角色:

Client:民众

Propser:接受Client请求,像议员

Accpetor:提议投票和接收者,像国会

learner:backup,像记录员

强一致性算法-Basic Paxos

潜在问题,活锁(多人提出问题,用等待解决)

难实现,效率低,2pc


强一致性算法-multi Paxos


只有一个leader

一轮rpc

减少角色,进一步简化

client

servers

leader

强一致性算法-Raft

进一步简化角色

client

leader

candidate

强一致性算法-ZAB

基本与raft相同

只是名词上不同,还有raft保证日志连续性,心跳方向为leader至follower.

ZAB则相反