分布式面试 - zookeeper 都有哪些使用场景?

面试题

zookeeper 都有哪些使用场景?

面试官心理分析

现在聊的 topic 是分布式系统,面试官跟你聊完了 dubbo 相关的一些问题之后,已经确认你对分布式服务框架/RPC框架基本都有一些认知了。那么他可能开始要跟你聊分布式相关的其它问题了。

分布式锁这个东西,很常用的,你做 Java 系统开发,分布式系统,可能会有一些场景会用到。最常用的分布式锁就是基于 zookeeper 来实现的。

其实说实话,问这个问题,一般就是看看你是否了解 zookeeper,因为 zookeeper 是分布式系统中很常见的一个基础系统。而且问的话常问的就是说 zookeeper 的使用场景是什么?看你知道不知道一些基本的使用场景。但是其实 zookeeper 挖深了自然是可以问的很深很深的。

面试题剖析

大致来说,zookeeper 的使用场景如下,我就举几个简单的,大家能说几个就好了:

  • 分布式协调
  • 分布式锁
  • 元数据/配置信息管理
  • HA高可用性

分布式协调

这个其实是 zookeeper 很经典的一个用法,简单来说,就好比,你 A 系统发送个请求到 mq,然后 B 系统消息消费之后处理了。那 A 系统如何知道 B 系统的处理结果?用 zookeeper 就可以实现分布式系统之间的协调工作。A 系统发送请求之后可以在 zookeeper 上对某个节点的值注册个监听器,一旦 B 系统处理完了就修改 zookeeper 那个节点的值,A 立马就可以收到通知,完美解决。

分布式锁

举个栗子。对某一个数据连续发出两个修改操作,两台机器同时收到了请求,但是只能一台机器先执行完另外一个机器再执行。那么此时就可以使用 zookeeper 分布式锁,一个机器接收到了请求之后先获取 zookeeper 上的一把分布式锁,就是可以去创建一个 znode,接着执行操作;然后另外一个机器也尝试去创建那个 znode,结果发现自己创建不了,因为被别人创建了,那只能等着,等第一个机器执行完了自己再执行。

元数据/配置信息管理

zookeeper 可以用作很多系统的配置信息的管理,比如 kafka、storm 等等很多分布式系统都会选用 zookeeper 来做一些元数据、配置信息的管理,包括 dubbo 注册中心不也支持 zookeeper 么?

HA高可用性

这个应该是很常见的,比如 hadoop、hdfs、yarn 等很多大数据系统,都选择基于 zookeeper 来开发 HA 高可用机制,就是一个重要进程一般会做主备两个,主进程挂了立马通过 zookeeper 感知到切换到备用进程。

转载来源:https://github.com/doocs/advanced-java/blob/master/docs/distributed-system/zookeeper-application-scenarios.md

分布式面试 - zookeeper 都有哪些使用场景?相关推荐

  1. zookeeper 都有哪些使用场景?

    面试题 zookeeper 都有哪些使用场景? 面试官心理分析 假设现在聊的话题是分布式系统,面试官跟你聊完了 dubbo 相关的一些问题之后,已经确认你对分布式服务框架/RPC框架基本都有一些认知了 ...

  2. zookeeper都有哪些使用场景

    分布式协调 分布式锁 注册中心(元数据/配置信息管理) HA高可用性

  3. 面试官问:说说悲观锁、乐观锁、分布式锁?都在什么场景下使用?有什么技巧?...

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 如何确保一个方法,或者一块代码在高并发情况下,同一时间只能 ...

  4. 说说zookeeper一般都有哪些使用场景?

    本文介绍 zookeeper 的几个应用场景:分布式协调.分布式锁.元数据/配置信息管理.HA高可用性. 分布式协调 zookeeper 最开始就是用来解决分布式应用如何互相协调这样一个问题的.分布式 ...

  5. 分布式面试 - 如何基于 dubbo 进行服务治理、服务降级、失败重试以及超时重试?

    分布式面试 - 如何基于 dubbo 进行服务治理.服务降级.失败重试以及超时重试? 面试题 如何基于 dubbo 进行服务治理.服务降级.失败重试以及超时重试? 面试官心理分析 服务治理,这个问题如 ...

  6. 分布式面试 - 分布式锁的常见问题

    分布式面试 - 分布式锁的常见问题 面试题 一般实现分布式锁都有哪些方式?使用 redis 如何设计分布式锁?使用 zk 来设计分布式锁可以吗?这两种分布式锁的实现方式哪种效率比较高? 面试官心理分析 ...

  7. ZooKeeper的作用、应用场景和替代品

    ZooKeeper 我想大家应该都略有耳闻,可能你在开发中没有直接使用过,但常用的 Hadoop.HBase.Kafka.Dubbo 等都有使用到 ZooKeeper.那 ZooKeeper 到底起到 ...

  8. 45岁程序员发求职贴:精通各种技术体系,却连个面试机会都没有…

    最近,在网上看到这样一个留言,引发了程序员这个圈子不少的轰动. "我是一名软件开发人员,今年45岁,精通各种技术体系--而我辞职回家半年后再回来寻找工作机会的时候,却发现连个面试机会都很难得 ...

  9. 金九银十已到,大厂面试大全+面试经历都在这了(建议收藏)

    前言 疫情到现在已经持续有3年的时间了,由于疫情的影响,无数行业都受到了影响,互联网寒冬下,许多程序员被裁,大环境格外困难. 我发现一个奇怪的现象:那些跳槽的人,总是从一个坑,跳进令一个坑中.毕竟一年 ...

最新文章

  1. 内存溢出_JVM|03内存溢出实战
  2. Shiro之从数据库初始化角色权限信息
  3. 数据库范式(1NF 2NF 3NF BCNF)详解
  4. python高效处理文件_使用Python语言高效地处理一个文本文件
  5. AI已火,宗教当生,硅谷出了个“洪秀全”
  6. array variable used in printf function
  7. linux如何入侵电脑,如何入侵Linux系统 -电脑资料
  8. 【实战】替代Flash的,基于JQuery、HTML5文件上传插件
  9. 关于微信小程序,input框的值无法输入到e.detail.value
  10. 字节跳动 8 年,抖音、头条的技术能力开发者都可以用起来了!
  11. java Web api接入讯飞aiui(1)
  12. wstmart 对目录进行授权
  13. 软件质量属性的两个模型(Software Quality Attributes)—中英文对照
  14. 最好听的男孩名字及1000个好听的女孩的名字
  15. 《乌合之众》中30句精华
  16. 区块链和大数据的关系
  17. 腾讯AI Lab 提出「完全依存森林」,大幅缓解关系抽取中的错误传递
  18. C++虚函数的实现原理
  19. cgb2110-day13
  20. html精灵图坐标如何确定,CSS实现精灵图与字体图标

热门文章

  1. 文本框 价格 保留两位小数 讨论
  2. Node.js: NPM 使用介绍
  3. Ubuntu全盘备份与恢复
  4. 线程池三种创建方式和自定义线程池ThreadPoolExecutor
  5. 系统日志之logger命令
  6. 部署mysql MHA集群
  7. 【转载】ORM的概念
  8. optimize table优化mysql例子
  9. 【linux】 rm 防止误删
  10. TreeView控件 1202