哈喽!大家好,我是小奇,一位不靠谱的程序员
小奇打算以轻松幽默的对话方式来分享一些技术,如果你觉得通过小奇的文章学到了东西,那就给小奇一个赞吧
文章持续更新

一、前言

这天是越来越热了,但是还是有很多线下面试,我虽然很不想去,但是没办法,谁让咱是打工人呢。。。(淦。。)

今天面试的地方距离小窝不远,我就骑上了我的小小自行车,不知不觉就来到了十字路口。

看着熙熙攘攘、人来人往的街头,我犹如走到了自己的人生十字路口,我不仅感叹,世界这么大竟然没有我小奇的容身之地,啊,苍天啊、大地啊

路人:前面那个骑自行车的人类,绿灯了,走不走啊,要作诗的话靠路边好不好。

我:走,肯定走,不走就迟到了。。。

终于来到了要面试的公司,嚯,这个公司挺气派,1、2、3、4、5、6、7、8、9,一共6层楼。。。

电梯门一开就有前台小姐姐接待,没有大家期待的打电话留门环节。。。

前台小姐姐:您好,您是?

我:我是来面试的。

前台小姐姐:您的联系人是?

我:范厨师

前台小姐姐:厨师?

我:不好意思,说串了,范厨师是我下午要去面试的饭馆的接待人,你们这里是马老师跟我联系的。

前台小姐姐:您还面试厨师呢?

我:没办法,谁让你们这个行业这么卷,还动不动就辞退人,我也得搞点副业呀。。。

前台小姐姐:有道理。。。先把这些表填一下吧。

嚯,给了我有半斤表,我是来面试的不是来练字的。

什么星座、什么血型、什么家庭、什么背景、什么来路、什么是快乐星。。。这都是些什么问题啊,我来面试的,怎么搞的我跟要收监一样。算了,写了两个小时终于写完了。

二、面试

面试官:小奇是吧,过来路上累了吧

我:路上不累,就是填了半斤的表有点累。。。咱们公司是不是纸多的用不完啊,用不完走的时候我拿点回家当手纸。

面试官:哈哈,你要是面试回答的好就让你随便拿

我:行,那你问吧。

面试官:我看你简历上精通zookeeper是吧

我:都是各个面试官之间吹捧的,其实还好啦,一般一般,世界第三。。。

三、ZAB协议

面试官:那你说一说什么是ZAB协议吧

我:“这啊八”协议是什么啊,我怎么没有听说过呢?

面试官:你不是精通zookeeper吗,zookeeper里面的zab协议

我:哦哦,那我明白了。

我:zab协议全称为:Zookeeper Atomic Broadcast(Zookeeper 原子广播协议)。
zab主要是为了解决分布式一致性而设计的一种实现方法。

面试官:解决哪方面一致性呢

我:解决数据方面的一致性问题,我们要保证Leader中的数据和follower中的数据保持一致。

面试官:怎么能够保证一致呢

我:在leader收到客户端发送的消息后他并没有先保存下来,而是先发送给follower节点,当follower节点有超过一半给他相应成功后,他才让follwer保存数据,然后自己也保存数据。

面试官:能不能形象一点呢,这个图我看不懂

我:看不懂出门左拐,慢走不送。。。

面试官:好,哎不对呀,我是面试官,你是来面试的呀,不应该我走呀

我:行,那你不走的话我就给你详细讲一下。

面试官:好

我:现在我们来角色扮演一下,我演皇上,你演太监好吗?

面试官:好

我:今天中午御膳房送来了我最爱吃的硬菜木须肉,这个时候我肯定不能直接吃呀,我肯定先给太监也就是你尝一下有没有毒,如果没有毒了我再吃对不对。

面试官:对,那为什么一定要半数以上的太监认为没有毒了你才能吃呢

我:笨啊,如果只有一个太监,那么他被收买了,我肯定就悬了,肯定得多个太监都说没毒才行。

面试官:对,那为什么不让所有的太监都尝一尝呢,半数的就够了吗

我:我有八百个太监,都尝一尝那我岂不是就没有饭吃了。。。

面试官:对对对,皇上英明

面试官:小伙子真厉害啊,让我身临其境的感受了一下原理

我:这不算啥,想感受等我入职了咱们接着角色扮演。

面试官:好,那你明天就来上班吧,不,现在就登基吧

我:这么突然吗。。。

四、总结

这里关于zookeeper还没有整理完毕,文章后面持续更新,建议收藏。

文章中涉及到的命令大家一定要像我一样每个都敲几遍,只有在敲的过程中才能发现自己对命令是否真正的掌握了。

如果觉得我的文章还不错的话就点个赞吧

面试官:ZAB协议是什么?的更多相关文章

  1. zookeeper 负载均衡 核心机制-实现原理 包含ZAB协议(滴滴,阿里面试)

    面试也经常问kafka的原理,以及zookeeper与kafka原理的区别:kafka 数据一致性-leader,follower机制与zookeeper的区别: zookeeper是如何实现负载均衡 ...

  2. zookeeper核心之ZAB协议就这么简单!

    背景 我们都知道 Zookeeper 是基于 ZAB 协议实现的,在介绍 ZAB 协议之前,先回顾一下 Zookeeper 的起源与发展. Zookeeper 究竟是在什么样的时代背景下被提出?为了解 ...

  3. 面试官的七种武器:Java篇

    起源 自己经历过的面试也不少了,互联网的.外企的,都有.总结一下这些面试的经验,发现面试官问的问题其实不外乎几个大类,玩不出太多新鲜玩意的.细细想来,面试官拥有以下七种武器.恰似古龙先生笔下的武侠世界 ...

  4. 漂亮回答面试官struts2的原理

    众所周知,Struts2是个非常优秀的开源框架,我们能用Struts2框架进行开发,同时能快速搭建好一个Struts2框架,但我们是否能把Struts2框架的工作原理用语言表达清楚,你表达的原理不需要 ...

  5. Tomcat相关面试题,看这篇就够了!保证能让面试官颤抖!

    Tomcat相关的面试题出场的几率并不高,正式因为如此,很多人忽略了对Tomcat相关技能的掌握. 这次整理了Tomcat相关的系统架构,介绍了Server.Service.Connector.Con ...

  6. 程序员过关斩将--面试官再问你Http请求过程,怼回去!

    菜菜哥,X总在产品部瞎指挥,作为程序媛的我都快撑不住了 不光你撑不住了,大家都要撑不住了,外行人指导内行人,呵呵 前天我偷偷的去面试了,结果挂了 出去转转其实是好事,面试官问你什么了? 他让我描述一个 ...

  7. (转)史上最全 40 道 Dubbo 面试题及答案,看完碾压面试官!

    背景:因为自己的简历写了dubbo,面试时候经常被问到.实际自己对dubbo的认识只停留在使用阶段,所以有必要好好补充下基础的理论知识. https://zhuanlan.zhihu.com/p/45 ...

  8. 【测试工程师面试】在BOSS直聘上和面试官的一问一答

    岗位描述: 信用卡核心系统功能测试,负责测试计划制定,测试设计,测试执行,测试进度掌控,自动化工具建设等工作.有责任心,执行力强,工作认真细致,逻辑思维强熟悉linux,oracle或者IBM大型机操 ...

  9. 史上最全 40 道 Dubbo 面试题及答案,看完碾压面试官

    想往高处走,怎么能不懂 Dubbo? Dubbo是国内最出名的分布式服务框架,也是 Java 程序员必备的必会的框架之一.Dubbo 更是中高级面试过程中经常会问的技术,无论你是否用过,你都必须熟悉. ...

随机推荐

  1. sqlserver 中,如何将getdate()时间的时分秒固定为00:00:00或者忽略不要

    在使用getdate()时,时间会实时刷新,那么我们就要再查询的时候就需要精确到毫秒后三位,非常难受,那么为了解决这个问题我们可以通过以下几种方法进行固定或者去掉毫秒 1.将毫秒固定为00:00:00 ...

  2. 解决Hadoop集群hdfs无法启动DataNode的问题

    问题描述: 在hadoop启动hdfs的之后,使用jps命令查看运行情况时发现hdfs的DataNode并没有打开. 笔者出现此情况前曾使用hdfs namenode -format格式化了hdfs ...

  3. Golang中常用的代码优化点

    Golang中常用的代码优化点 大家好,我是轩脉刃. 这篇想和大家聊一聊golang的常用代码写法.在golang中,如果大家不断在一线写代码,一定多多少少会有一些些代码的套路和经验.这些经验是代表你 ...

  4. C++ md5 函数

    转 http://www.zedwood.com/article/cpp-md5-function MD5 is no longer considered cryptographically safe ...

  5. mac phpstorm返回文件顶部或者底部

    在Mac下,请按FN+Command+→|←,就这么简单~

  6. AQS分析笔记

    1 介绍 AQS: AbstractQueuedSynchronizer,即队列同步器.是构建锁或者其他同步组件的基础框架.它维护了一个volatile int state(代表共享资源)和一个FIF ...

  7. 启动一个线程是调用 run()还是 start()方法?

    启动一个线程是调用 start()方法,使线程所代表的虚拟处理机处于可运行状态, 这意味着它可以由 JVM 调度并执行,这并不意味着线程就会立即运行.run()方 法是线程启动后要进行回调(callb ...

  8. Linux编译安装软件常见问题及排查

    1.配置cmake参数时提示: The C compiler identification is unknown. The CXX compiler identification is unknown ...

  9. 学习openstack(五)

    OpenStackOpenStack介绍OpenStack是一种免费的开源平台,帮助服务提供商实现类似于亚马逊EC2和S3的基础设施服务.OpenStack当前有三个核心项目:计算(Nova),对象存 ...

  10. input 输入框只能输入数字,一行代码解决,兼容谷歌 火狐

    <input id="mobile" name="mobile" type="text" onkeyup="this.val ...