zookeeper 都有哪些使用场景? - 米兜Java

midoujava 2021-12-02 原文


zookeeper 都有哪些使用场景?

关注米兜Java.md

面试题

zookeeper 都有哪些使用场景?

面试官心理分析

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

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

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

面试题剖析

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

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

分布式协调

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

file

分布式锁

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

file

元数据/配置信息管理

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

zookeeper-meta-data-manage

HA高可用性

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

file

本文在米兜公众号链接:
https://mp.weixin.qq.com/s/nkKW2O-qW0AJpqxqGMQVNA

欢迎关注米兜Java,一个注在共享、交流的Java学习平台。

file

发表于
2019-10-02 22:22 
米兜Java 
阅读(542
评论(0
编辑 
收藏 
举报

 

版权声明:本文为midoujava原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/midoujava/p/11618666.html

zookeeper 都有哪些使用场景? - 米兜Java的更多相关文章

  1. 存储系列之 虚拟内存:分页技术 – orange-C

    存储系列之 虚拟内存:分页技术 主要讲述虚拟内存最常见的调度方式:分页(paging)技术,涉及相当多的知识点 […]...

  2. AI之旅(5):正则化与牛顿方法 – tieven

    AI之旅(5):正则化与牛顿方法 前置知识   导数,矩阵的逆 知识地图   正则化是通过为参数支付代价的方式 […]...

  3. android 3d 旋转 – 老菜_

    android 3d 旋转 在javaeye里看到了关于3d旋转的文章,可是博主没有透入什么技术细节。由于一直 […]...

  4. JavaWeb前置知识 : 动态和静态的区别、两种架构、常见状态码

    JavaWeb程序设计(一) : 前置知识 1、动态网页与静态网页的区别: a、不要和是否有"动感"混为一谈。 […]...

  5. Spring IOC 容器源码分析 – 获取单例 bean

    1. 简介 为了写 Spring IOC 容器源码分析系列的文章,我特地写了一篇 Spring IOC 容器的 […]...

  6. 国家电网公司“SG186工程”的含义 – 圣殿GIS

    国家电网公司“SG186工程”的含义 “SG186工程”的含义是:SG,是国网公司英文简称(STATE  GR […]...

  7. SQL Server 迁移数据到MySQL – 听风吹雨

    SQL Server 迁移数据到MySQL 2013-08-05 11:59  听风吹雨  阅读(59422) […]...

  8. Ajax的工作原理 – 双耳

    Ajax的工作原理 Ajax的工作原理相当于在用户和服务器之间加了—个中间层,使用户操作与服务器响应异步化。并 […]...

随机推荐

  1. JSON Patch

    1.前言 可以这么说的是,任何一种非强制性约束同时也没有“标杆”工具支持的开发风格或协议(仅靠文档是远远不够的 […]...

  2. 模拟航班查询及预定系统 编写示例

    一、建立C#窗体 所需控件: Label标签   Button 按钮 TextBox 文本框 ComboBox […]...

  3. layui的使用说明

    一、定义 layui,是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与 […]...

  4. doxygen上手

    doxygen {#mainpage} doxygen是干什么的 相信大家在看MCU原厂的帮助文档的时候,都能 […]...

  5. world-sku.com 跨境供应链助力国内跨境电商

    近两年来,随着国家对跨境电商的政策逐渐开放和扶持、资本的涌入,跨境电商引来了春天。 小红书、洋码头、达令、豌豆 […]...

  6. 关于eclipse 与OpenCV 配置频繁报错的问题总结Program “C:/SDK/android-ndk-xxx/ndk-build.cmd” is not found in PATH报错的解决!

    2018-01-3116:58:12 Program "C:/SDK/android-ndk-r8/ndk-b […]...

  7. 学习开源软件清单

    2015.12 Hangfire 后台任务 Managed Wifi API C#连接Wifi API Hum […]...

  8. 使用webstorm操作git(转)

    0. 前言 在上一篇文章中,讲述了使用webstorm去调试node程序,最近研究了一下如何使用webstor […]...

展开目录

目录导航