5. 一致性协议

1. 2PC-两阶段提交

是一种思想,具体实现方式有很多。
在这里插入图片描述
优点:

  1. 原理简单
  2. 实现方便

缺点:

  1. 同步阻塞
  2. 单点故障
  3. 数据不一致
  4. 容错机制不完善

2. 3PC-三阶段提交

在这里插入图片描述
与2PC区别:

  1. 第二阶段才写 undo 和 redo 事务日志
  2. 第三阶段协调者出现异常或网络超时参与者也会 commit

优点:

  1. 改善同步阻塞
  2. 改善单点故障

缺点:

  1. 同步阻塞
  2. 单点故障
  3. 数据不一致
  4. 容错机制不完善

3. Paxos算法

在这里插入图片描述

  1. 少数服从多数
  2. 角色轮换避免单点故障

4. ZK 集群

在这里插入图片描述

  1. 顺序一致性
  2. 原子性
  3. 单一视图
  4. 可靠性
  5. 实时性
  6. 角色轮换避免单点故障

Leader 集群工作机制中的核心,作用如下:

  1. 事务请求的唯一调度和处理者,保证集群事务处理的顺序性
  2. 集群内部个服务器的调度者(管理follower,数据同步)

Follower 集群工作机制中的跟随者,作用如下:

  1. 处理非事务请求,转发事务请求给Leader
  2. 参与事务请求proposal投票
  3. 参与leader选举投票

Observer 3.30以上版本提供,和 follower 功能相同,但不参与任何形式投票,作用:

  1. 处理非事务请求,转发事务请求给Leader
  2. 提高集群非事务处理能力

ZAB 协议是为分布式协调服务 ZooKeeper 专门设计的一种支持崩溃恢复的原子广播协议。在 ZooKeeper 中,主要依赖 ZAB 协议来实现分布式数据一致性;

在这里插入图片描述
消息广播:
在这里插入图片描述

  1. Leader 接收到消息请求后,将消息赋予一个全局唯一的 64 位自增 id,叫做:zxid,通过 zxid 的大小比较即可实现因果有序这一特性。
  2. Leader 通过先进先出队列(通过 TCP 协议来实现,以此实现了全局有序这一特性)将带有 zxid 的消息作为一个提案(proposal)分发给所有 follower。
  3. 当 follower 接收到 proposal,先将 proposal 写到硬盘,写硬盘成功后再向 leader 回一个 ACK。
  4. 当 leader 接收到合法数量的 ACKs 后,leader 就向所有 follower 发送 COMMIT 命令,会在本地执行该消息。
  5. 当 follower 收到消息的 COMMIT 命令时,就会执行该消息。

崩溃恢复:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值