zookeeper 面试

本文围绕zookeeper面试展开,介绍了ZK的使用场景,包括分布式协调、分布式锁等。还对比了ZK和Redis分布式锁的实现,Redis有简单版和集群版,存在故障、性能和实现复杂等问题,而ZK实现简单、消耗小且更可靠,获取不到锁时注册监听器即可。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

zookeeper 面试


Q0: ZK的使用场景

  • 分布式协调
        eg.A系统跟B系统交互,A系统如何知道B系统的处理结果?可以用ZK协调
        A系统发生请求后可以在ZK上注册监听器,当B系统处理后,修改节点,会通知A
  • 分布式锁
     	创建znode,同一时间只能有一个
  • 元数据/配置信息管理
  比如kafka、storm、dubbo使用zk管理配置
  • HA高可用性
     	重要进程一般会做主备两个,主进程挂了立马通过zk感知到切换到备用进程	   	

Q1:ZK和Redis分布式锁实现区别

  • Redis分布式锁的实现

    • 简单版: 创建锁用set key randomvalue nx px time,释放锁则删除key(用lua脚本,判断value一样)

      • 不足 : 如果redis故障或者主从切换,则锁会被其他系统拿到
    • 集群版: 创建锁的时候尝试在每个master上创建,要求大部分节点能创建成功,如果建锁成功,其他系统获取锁的时候需轮询​

      • 不足: 轮询消耗性能 ; 实现比较复杂
  • ZK的分布式锁实现

    • 创建ZNode, 其他系统获取不到锁时,注册个监听器即可

    总结 : ZK的实现简单,消耗小,更加可靠

ZooKeeper是一个分布式协调服务,它提供了一个可靠的分布式数据管理和协调机制。 在ZooKeeper中,客户端的读请求可以被集群中的任意一台机器处理,并且如果读请求在节点上注册了监听器,这个监听器也是由所连接的ZooKeeper机器来处理。而对于写请求,这些请求会同时发给其他ZooKeeper机器,并在达成一致后返回成功。因此,随着ZooKeeper集群机器增多,读请求的吞吐量会提高,但写请求的吞吐量会下降。此外,ZooKeeper具有有序性的重要特性,所有的更新都是全局有序的,每个更新都有一个唯一的时间戳(zxid),而读请求相对于更新有序,返回结果中会包含ZooKeeper最新的zxid。 ZooKeeper的工作原理是通过使用一致性协议(如ZAB协议)来维护分布式系统的一致性。ZooKeeper集群中的机器通过相互通信来达成一致,并共同维护一个分布式的数据结构(称为ZooKeeper数据树)。这个数据树的每个节点都可以存储数据,并且可以注册监听器以侦听节点数据的变化。ZooKeeper还提供了丰富的API,使得开发者可以基于ZooKeeper实现分布式应用程序。 总结来说,ZooKeeper是一个分布式协调服务,它通过可靠的分布式数据管理和协调机制,提供了一致性、有序性和高可用性的特性。它的工作原理是通过使用一致性协议来维护分布式系统的一致性,并维护一个分布式的数据结构。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Zookeeper常见面试题(包含答案)](https://blog.youkuaiyun.com/woniu211111/article/details/123331903)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Zookeeper面试题.pdf](https://download.youkuaiyun.com/download/weixin_42433420/13099954)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值