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://mp.weixin.qq.com/s/nkKW2O-qW0AJpqxqGMQVNA

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

原文地址:https://www.cnblogs.com/midoujava/p/11618666.html

时间: 2024-07-31 12:14:15

zookeeper 都有哪些使用场景?的相关文章

阿里Java面试题剖析:zookeeper 都有哪些使用场景?

面试原题 zookeeper 都有哪些使用场景? 面试官心理分析 现在聊的 topic 是分布式系统,面试官跟你聊完了 dubbo 相关的一些问题之后,已经确认你对分布式服务框架/RPC框架基本都有一些认知了.那么他可能开始要跟你聊分布式相关的其它问题了. 分布式锁这个东西,很常用的,你做 Java 系统开发,分布式系统,可能会有一些场景会用到.最常用的分布式锁就是基于 zookeeper 来实现的. 其实说实话,问这个问题,一般就是看看你是否了解 zookeeper,因为 zookeeper

【Zookeeper】zookeeper简单介绍和适用场景

什么是zookeeper ZooKeeper是用于维护配置信息,命名,提供分布式同步以及提供组服务的集中式服务. zookeeper数据结构 zookeeper数据结构简单的可以看成树状结构.每个节点最大只能存储1M的数据. zookeeper特点 主从:集群中一个领导者,多个跟随者 半数机制:集群中半数以上存活,才能正常工作 数据一致性:集群中无弄领导者还是跟随者数据都是一样的. 顺序性:来自同一个client的更新请求按照其发送顺序依次执行. 数据更新原子性:更新成功或失败.没有部分结果.

ZooKeeper应用理论及其应用场景

ZooKeeper Client APIZooKeeper Client Library提供了丰富直观的API供用户程序使用,下面是一些常用的API: ● create(path, data, flags): 创建一个ZNode, path是其路径,data是要存储在该ZNode上的数据,flags常用的有: PERSISTEN, PERSISTENT_SEQUENTAIL, EPHEMERAL, EPHEMERAL_SEQUENTAIL ● delete(path, version): 删除一

ZooKeeper介绍及典型使用场景

1 概述 ??ZooKeeper(动物园管理员),顾名思义,是用来管理Hadoop(大象).Hive(蜜蜂).Pig(小猪)的管理员,同时Apache HBase.Apache Solr.LinkedIn Sensei等众多项目中都采用了ZooKeeper. ??ZooKeeper曾是Hadoop的正式子项目,后发展成为Apache顶级项目,与Hadoop密切相关但却没有任何依赖.它是一个针对大型应用提供高可用的数据管理.应用程序协调服务的分布式服务框架,基于对Paxos算法的实现,使该框架保证

AddTransient、AddSingleton、AddScopped 三者都应该在什么场景下使用

网上随便一搜,能搜出一大堆对三者进行区别分析的文章,但是呢,理论是一回事,实际使用又是另外一回事,到底在何种场景下应该使用何种注入方式呢? 通过这篇文章和我自身的实际经验,来说一说实际应用中的情况: 首先 AddTransient,这个文章中说的挺明白,就是当组件无法共享时,将使用Transient.非线程安全的数据库访问对象就是一个例子. 我根据我实际遇到的情况,着重说一下 AddSingleton 和 AddScopped,毕竟这两种实际开发中用到的比较多. 于我个人而言,我比较习惯用Add

redis 是什么?都有哪些使用场景?

一.什么是redis 首先要说redis,应该先说一下nosql,NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展.NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题,包

Zookeeper集群典型分布式应用场景

1.配置管理——需求是数据一致性 ZooKeeper 采用的是推拉相结合的方式:客户端向服务端注册自己需要关注的节点,一旦该节点的数据发生变更,那么服务端就会向相应的客户端发送Watcher事件通知,客户端接收到这个消息通知之后,需要主动到服务端获取最新的数据. 2.命名服务 服务需要被访问,如服务提供的uri,但是uri是易变的,所以需要给变化的uri取一个固定的名字,每次通过这个名字来获取服务的uri. Zookeeper让服务可以创建一个节点,节点名为服务名,数据为uri,通过这种方式来完

互联网 Java 工程师进阶知识完全扫盲

小编经过一个多月的努力,给大家总结了一份面试方面的题目.这份面试题涉及高并发.分布式.高可用相关知识点,在此分享给大家,希望大家能拿到一份理想的 Offer!因为是笔试题目,大家可以先做.答案在后面. 高并发架构 消息队列 为什么使用消息队列?消息队列有什么优点和缺点?Kafka.ActiveMQ.RabbitMQ.RocketMQ 都有什么优点和缺点? 如何保证消息队列的高可用? 如何保证消息不被重复消费?(如何保证消息消费时的幂等性) 如何保证消息的可靠性传输?(如何处理消息丢失的问题) 如

ZooKeeper典型使用场景一览

ZooKeeper是一个高可用的分布式数据管理与系统协调框架.基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得zookeeper能够应用于很多场景.zk的使用场景进行归类介绍: 场景类别 典型场景描述(ZK特性,使用方法) 应用中的具体使用 数据发布与订阅 发布与订阅即所谓的配置管理,顾名思义就是有系统将数据发布到zk节点上,供订阅者动态获取数据,实现配置信息的集中式管理和动态更新.例如全局的配置信息,地址列表等就非常适合使用.(Diamond和C