栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

5. 一致性协议

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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 命令时,就会执行该消息。

崩溃恢复:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/943868.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号