《吊打面试官系列》Zookeeper面试12题

本文详细探讨了Zookeeper的各个方面,包括它的作用、数据结构、Znode存储内容、系统架构、ZAB协议、Leader选举以及数据一致性问题。Zookeeper作为一个分布式协调服务,用于数据发布/订阅、命名服务、分布式同步等。其数据结构类似文件系统,支持持久化和临时节点,每个Znode存储数据、访问权限和子节点引用。在系统架构中,Zookeeper包含Leader、Follower和Observer节点,确保集群高可用。ZAB协议确保数据一致性,而选举过程涉及投票和状态切换。虽然Zookeeper设计了严格的机制,但仍然可能存在短暂的数据不一致情况。
摘要由CSDN通过智能技术生成

1.Zookeeper 是什么?能做什么?

Zookeeper 是一个开源的,是用于维护配置信息,命名,提供分布式同步和提供组服务的集中式服务。

可以基于 Zookeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。

Zookeeper 最常用的一个使用场景就是作为注册中心,生产者将自己提供的服务注册到 Zookeeper,然后消费者从 Zookeeper 中拿到生产者的服务列表信息,然后再去调用生产者的内容数据,比如 Dubbo,Kafka 都是使用 Zookeeper 作为注册中心的。

2.说说 Zookeeper 的数据结构吧


ZooKeeper 提供的名称空间与标准文件系统的名称空间非常相似。名称是由斜杠(“ /”)分隔的一系列路径元素。ZooKeeper 命名空间中的每个 znode 均由路径标识。每个 znode 都有一个父对象,其路径是 znode 的前缀,元素少一个;此规则的例外是 root(“ /”),它没有父项。此外,与标准文件系统完全一样,如果 znode 有子节点,则无法删除它。

ZooKeeper 与标准文件系统之间的主要区别在于,每个 znode 都可以具有与之关联的数据(每个文件也可以是目录,反之亦然),并且 znode 限于它们可以拥有的数据量。ZooKeeper 旨在存储协调数据:状态信息,配置,位置信息等。这种元信息通常以千字节(如果不是字节)来度量。ZooKeeper 具有1M的内置完整性检查,以防止将其用作大型数据存储,但是通常,它用于存储小得多的数据。

Znode的三种类型:

  • 持久节点(persistent node)节点会被持久
  • 临时节点(ephemeral node),客户端断开连接后,ZooKeeper 会自动删除临时节点
  • 顺序节点(sequential node),每次创建顺序节点时,ZooKeeper
    都会在路径后面自动添加上10位的数字,从1开始,最大是2147483647 (2^32-1)

Znode的四种形式:

  • 持久节点:如 create /test/a “hello”,通过 create参数指定为持久节点
  • 持久顺序节点:通过 create -s参数指定为顺序节点
  • 临时节点:通过 create -e参数指定为顺序节点
  • 临时顺序节点:通过 create -s -e参数指定为临时及顺序节点

3.Znode里面都存储了什么?

Znode包含了存储数据(data)、访问权限(acl)、子节点引用(child)、节点状态信息(stat)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值