【面试官】那ZooKeeper二阶段提交有什么缺点吗?
- 面试官:知道ZAB协议吗?
- 面试官:消息广播你讲一讲?
- 面试官:那二阶段提交有什么缺点吗?
- 面试官:崩溃模式呢?
大家好,我是南哥。
一个Java学习与进阶的领路人,相信对你通关面试进入心心念念的公司有所帮助。
文章目录
- ZooKeeper的协议
- ZAB协议
- 消息广播
- 消息广播的缺点
- 崩溃模式
1. ZooKeeper的协议
1.1 ZAB协议
面试官:知道ZAB协议吗?
要深入学习ZooKeeper前,南哥认为我们要先学习ZooKeeper的核心理念,所有的ZooKeeper行为都是围绕这个核心来进行的。说了那么多,它就是——ZAB协议。
ZAB协议英文全称叫ZooKeeper Atomic Broadcast,我们透过中文含义可以大概了解他做了什么事情:ZooKeeper原子消息广播协议。
来看看原子广播在维基百科的解释。
在容错分布式计算中,原子广播或全序广播是指多进程系统中的所有正确进程都以相同顺序接收同一组消息(即相同的消息序列)的广播。
那ZooKeeper广播啥呢?我们知道ZooKeeper集群有Leader服务器、Follower服务器,这个Leader服务器接收了客户端所有的事务请求,事务请求可以是新增某一个ZNode节点,也可以是删除某一个ZNode节点。
这些事务请求的变更要不要提交、如何通知其他Follower服务器进行同步变更,这就是广播涉及的主要内容了。
ZAB协议主要包含了消息广播、崩溃模式,跟着南哥往下看看。
1.2 消息广播
面试官:消息广播你讲一讲?
ZAB协议的消息广播类似于二阶段提交过程。顾名思义事务最终的提交要分为两个阶段。
消息广播的流程如下:
(1)针对客户端的事务请求,Leader服务器会为其生成对应的事务Proposal,同时广播给集群中其余Followr机器。这个事务Proposal我们可以把他理解为事务提案。
(2)Follower服务器在接收到事务Proposal后会以事务日志形式写入到本地磁盘中,如果写入成功,
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
👉以面试官面试的形式,涵盖了你怒怼大厂面试官、拿下大厂面试所需掌握的核心知识、面试重点! 👉相信一定对你顺利通关面试、拿到理想Offer有所帮助! 👉花费大量精力去制作本专栏,创作不易,各位的支持就是我创作的最大动力!