博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
25K大牛甩出的超详细面试总结,工作感悟
阅读量:1163 次
发布时间:2019-04-18

本文共 1842 字,大约阅读时间需要 6 分钟。

前言

上个月4号通过阿里工作的学长进行内推,7天简历评估,11号接到电话面试,尽管猝不及防回答仓促,但好在前期准备充分,通过。3天后进行现场面试,通知时间为早上10点。当日设了七点闹钟,结果五点五十三分惊醒后再无法入睡,起床,重新翻看之前做的笔记和重点,在lintcode上找了几道可能性较大的题进行练手。10点准时在蚂蚁金服总部开始面试,十点四十七分结束。15号收到通知,现场面通过,16号进行HR面,22号收到Offer。

面试内容如下:

35K成功入职:蚂蚁金服面试Java后端经历!「含面试题+答案」

一、什么是ZooKeeper

ZooKeeper是一个分布式服务协调框架,提供了分布式数据一致性的解决方案,基于ZooKeeper的数据结构,Watcher,选举机制等特点,可以实现数据的发布/订阅,软负载均衡,命名服务,统一配置管理,分布式锁,集群管理等等。

二、为什么使用ZooKeeper

ZooKeeper能保证:

  • 更新请求顺序进行。来自同一个client的更新请求按其发送顺序依次执行
  • 数据更新原子性。一次数据更新要么成功,要么失败
  • 全局唯一数据视图。client无论连接到哪个server,数据视图都是一致的
  • 实时性。在一定时间范围内,client读到的数据是最新的

三、数据结构

ZooKeeper的数据结构和Unix文件系统很类似,总体上可以看做是一棵树,每一个节点称之为一个ZNode,每一个ZNode默认能存储1M的数据。每一个ZNode可通过唯一的路径标识。如下图所示:

创建ZNode时,可以指定以下四种类型,包括:

  • PERSISTENT,持久性ZNode。创建后,即使客户端与服务端断开连接也不会删除,只有客户端主动删除才会消失。
  • PERSISTENT_SEQUENTIAL,持久性顺序编号ZNode。和持久性节点一样不会因为断开连接后而删除,并且ZNode的编号会自动增加。
  • EPHEMERAL,临时性ZNode。客户端与服务端断开连接,该ZNode会被删除。
  • EPEMERAL_SEQUENTIAL,临时性顺序编号ZNode。和临时性节点一样,断开连接会被删除,并且ZNode的编号会自动增加。

四、监听通知机制

Watcher是基于观察者模式实现的一种机制。如果我们需要实现当某个ZNode节点发生变化时收到通知,就可以使用Watcher监听器。

客户端通过设置监视点(watcher)向 ZooKeeper 注册需要接收通知的 znode,在 znode 发生变化时 ZooKeeper 就会向客户端发送消息

这种通知机制是一次性的。一旦watcher被触发,ZooKeeper就会从相应的存储中删除。如果需要不断监听ZNode的变化,可以在收到通知后再设置新的watcher注册到ZooKeeper。

监视点的类型有很多,如监控ZNode数据变化、监控ZNode子节点变化、监控ZNode 创建或删除

五、选举机制

ZooKeeper是一个高可用的应用框架,因为ZooKeeper是支持集群的。ZooKeeper在集群状态下,配置文件是不会指定Master和Slave,而是在ZooKeeper服务器初始化时就在内部进行选举,产生一台做为Leader,多台做为Follower,并且遵守半数可用原则。

由于遵守半数可用原则,所以5台服务器和6台服务器,实际上最大允许宕机数量都是3台,所以为了节约成本,集群的服务器数量一般设置为奇数

如果在运行时,如果长时间无法和Leader保持连接的话,则会再次进行选举,产生新的Leader,以保证服务的可用

六、初の体验

首先在官网下载ZooKeeper,我这里用的是3.3.6版本。

然后解压,复制一下/conf目录下的zoo_sample.cfg文件,重命名为zoo.cfg。

修改zoo.cfg中dataDir的值,并创建对应的目录:

最后到/bin目录下启动,我用的是window系统,所以启动zkServer.cmd,双击即可:

启动成功的话就可以看到这个对话框:

可视化界面的话,我推荐使用ZooInspector,操作比较简便

最后

我还为大家准备了一套体系化的架构师学习资料包以及BAT面试资料,供大家参考及学习,

已经将知识体系整理好(源码,笔记,PPT,学习视频)免费领取。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

)]

[外链图片转存中…(img-qPRKjUjd-1619748943551)]

[外链图片转存中…(img-Qo5wcUOo-1619748943552)]

转载地址:http://wgfbu.baihongyu.com/

你可能感兴趣的文章
react组件库-ant.design
查看>>
接力数字化,AI中台要引领智能化?
查看>>
Growing时代 | GrowingIO的数据驱动增长进行时
查看>>
金融智能监管,将会是人工智能应用的风口?
查看>>
《你好,数智新世界》系列报道丨对话云徙包志刚:逐梦营销数字化一哥
查看>>
机器学习框架从开源走向融合
查看>>
阿里腾讯等纷纷入局,隐私计算到底有何魅力?
查看>>
阿里腾讯华为自研数据库纷纷开源,醉翁之意不在酒?
查看>>
AI虚拟人“惊艳”亮相,多模态融合技术再起波澜
查看>>
得帆云数据中台,全链路赋能企业数据驱动业务
查看>>
加快数字创新赋能实体经济 CDEC2021中国数字智能生态大会成都站今日举行
查看>>
融入生态,是否是低代码创企的出路?
查看>>
浪潮开卖人工智能裤子丨Facebook走回头路?人工审核政治广告丨甲骨文发布自动化数据库【软件网每日新闻播报│第10-9期】
查看>>
库克:AR很牛,但我们现在还没搞定丨阿里云智联网欲撬万亿市场|戴尔物联网3年10亿刀战略【软件网每日新闻播报│第10-12期】
查看>>
用友、金山……3份行业深度洞察报告,100+主流厂商,300+业内大咖,企服三会与你洞见2018 | 【企服三会·2018】
查看>>
Gluon新机器学习库,学习库中的富二代丨又拖了后腿,9亿4G用户平均月流量2007M【软件网每日新闻播报│第10-23期】
查看>>
有营养的废话:人工智能、大数据和高性能计算融合成为趋势丨AI推理服务器,能读懂福尔摩斯?【软件网每日新闻播报│第10-24期】
查看>>
陆奇:人工智能核心需要数据 中国远远多于任何国家 | Gartner预测:2025年,人工智能将创造200万个新增就业机会
查看>>
【每日新闻】Gartner:2018年数据中心支出增长将会放缓 | 工信部:将从四个方面推进机器人产业向高端发展应用...
查看>>
【每日新闻】海比研究:2017年中国云ERP市场增长率高达76.2% | 云计算市场争夺战:AWS在全球排第一 阿里云亚太排第二...
查看>>