【面试官】那ZooKeeper为什么还采用ZAB协议
- 面试官:知道ZAB协议吗?
- 面试官:消息广播的二阶段提交你讲一讲?
- 面试官:那二阶段提交有什么缺点吗?
- 面试官:既然怎么多缺点,ZooKeeper为什么还采用ZAB协议?
- 面试官:那崩溃模式怎么解决这些问题的?
- 面试官:对了,你刚刚提到的事务中断逻辑是什么?
- 👉以【面试官面试】形式覆盖Java程序员所需掌握的Java核心知识、面试重点
- 📚本期是《ZooKeeper系列》,其他系列博客请订阅专栏《Java Offer训练营》
- ❤创作不易,不妨点赞、收藏、关注支持一下
文章目录
- ZAB协议
- 二阶段提交
- 二阶段提交的缺点
- ZAB协议特点
- 崩溃模式
- 事务中断逻辑
1. ZAB协议
面试官:知道ZAB协议吗?
知道的面试官,这个协议主要是两方面组成。
一个是消息广播、一个是崩溃恢复。
1.1 二阶段提交
面试官:消息广播的二阶段提交你讲一讲?
好的,消息广播使用的是原子广播协议,类似于二阶段提交过程。
他的流程是这样的,针对客户端的事务请求,Leader服务器会为其生成对应的事务Proposal,并发送给集群中其余机器,然后再分别收集各自的选票。
因为ZAB协议将二阶段提交中的事务中断逻辑移除,所以只需要收集过半Follower服务器的反馈Ack后即可,最后就是进行事务提交。
也就是分为二阶段,阶段一是询问事务的尝试能否成功,阶段二是事务提交。
1.2 二阶段提交的缺点
面试官:那二阶段提交有什么缺点吗?
- 首先一个是问题。参与一个事务的都需要进行阻塞,等到上一个完成之后才会开始
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
Java Offer训练营 文章被收录于专栏
👉以贴近现实的【面试官面试】形式帮助你系统学习后端技术 👉成体系知识帮你在后端进阶,每一道问答助你怒怼大厂面试官,收获大厂offer 👉《Java Offer训练营》包含Redis系列、MySQL系列、Kafka系列、ZooKeeper系列、JVM系列、多线程系列等等 👉制作不易,各位的支持是我创作的最大动力