【面试官】那ZooKeeper为什么还采用ZAB协议

  • 面试官:知道ZAB协议吗?
  • 面试官:消息广播的二阶段提交你讲一讲?
  • 面试官:那二阶段提交有什么缺点吗?
  • 面试官:既然怎么多缺点,ZooKeeper为什么还采用ZAB协议?
  • 面试官:那崩溃模式怎么解决这些问题的?
  • 面试官:对了,你刚刚提到的事务中断逻辑是什么?
  • 👉以【面试官面试】形式覆盖Java程序员所需掌握的Java核心知识、面试重点
  • 📚本期是《ZooKeeper系列》,其他系列博客请订阅专栏《Java Offer训练营》
  • ❤创作不易,不妨点赞、收藏、关注支持一下

文章目录

  1. ZAB协议
    1. 二阶段提交
    2. 二阶段提交的缺点
    3. ZAB协议特点
  2. 崩溃模式
  3. 事务中断逻辑

1. ZAB协议

面试官:知道ZAB协议吗?

知道的面试官,这个协议主要是两方面组成。

一个是消息广播、一个是崩溃恢复

1.1 二阶段提交

面试官:消息广播的二阶段提交你讲一讲?

好的,消息广播使用的是原子广播协议,类似于二阶段提交过程

他的流程是这样的,针对客户端的事务请求,Leader服务器会为其生成对应的事务Proposal,并发送给集群中其余机器,然后再分别收集各自的选票

因为ZAB协议将二阶段提交中的事务中断逻辑移除,所以只需要收集过半Follower服务器的反馈Ack后即可,最后就是进行事务提交。

也就是分为二阶段,阶段一是询问事务的尝试能否成功,阶段二是事务提交。

1.2 二阶段提交的缺点

面试官:那二阶段提交有什么缺点吗?

  1. 首先一个是问题。参与一个事务的都需要进行阻塞,等到上一个完成之后才会开始

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

Java Offer训练营 文章被收录于专栏

👉覆盖Java程序员所需掌握的Java核心知识、面试重点 👉成体系知识帮你在后端进阶,每一道面试官问答助你怒怼大厂面试官,收获大厂offer 👉《Java Offer训练营》包含Java系列、Redis系列、MySQL系列、Kafka系列、ZooKeeper系列、JVM系列、多线程系列等等 👉花费大量精力去制作本专栏,创作不易,各位的支持就是我创作的最大动力

全部评论
好贴
1
送花
回复
分享
发布于 04-21 13:03 北京
支持
点赞
送花
回复
分享
发布于 04-20 21:48 广东
秋招专场
校招火热招聘中
官网直投
支持
点赞
送花
回复
分享
发布于 04-25 23:38 广东

相关推荐

头像
不愿透露姓名的神秘牛友
05-09 08:45
1. 页面置换算法有哪些?FIFO、LFU和LRU分别是如何工作的?2. 如何实现一个可以在任意时刻设置触发时间的定时器功能?3. 如何实现取消之前设置的定时器任务?4. 如何快速查找一个IP地址对应的天气信息?5. 如何编写一个程序判断计算机的字节序(大端还是小端)?6. 如何手写一个求素数的算法?7. 如何实现宏定义交换两个数的值?8. 如何将一个数字转换为字符串?9. 如何判断一段代码是否存在错误?10. 解释内存对齐的概念及其重要性。11. 进程和线程的区别是什么?12. 什么是优先级反转?如何解决优先级反转问题?13. 为什么内核区要放在虚拟内存的高位地址?14. 自旋锁的底层实现原理是什么?为什么自旋锁不能让线程睡眠?15. 操作系统中有哪些内核同步的方式?16. 如何避免多个线程抢占共享资源?17. 互斥锁的原理是什么?18. 如果有一个线程长时间占用资源,会产生什么问题?19. 操作系统如何管理物理地址空间?20. 如果向0地址写或读数据,操作系统会发生什么?21. 什么是局部性原理?它为什么能提高缓存命中率?22. 操作系统中常见的进程调度算法有哪些?各有什么优缺点?23. 用户态和内核态之间是如何切换的?24. 哪些进程间通信方式是单向的?哪些需要借助内核?25. 简要描述计算机的工作原理。26. STM32的选型依据有哪些?27. STM32有哪几种启动方式?28. ARM体系结构中常用的寄存器有哪些?29. 如何在中断函数中等待数据准备完成?30. BIOS的作用是什么?它如何引导后续的启动过程?问题总结在专栏  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
查看30道真题和解析
点赞 评论 收藏
转发
6 11 评论
分享
牛客网
牛客企业服务