一、基础概念

  1. 什么是ZooKeeper?
  2. ZooKeeper的核心功能有哪些?
  3. ZooKeeper与Chubby的关系是什么?
  4. ZooKeeper的特点有哪些?
  5. ZooKeeper如何保证最终一致性?
  6. ZooKeeper在CAP理论中属于哪种类型?

二、数据模型

  1. ZooKeeper的数据模型是怎样的?
  2. 什么是ZNode?
  3. ZNode有哪些类型?
  4. 持久节点和临时节点的区别是什么?
  5. 顺序节点的作用是什么?
  6. ZNode可以存储多少数据?
  7. ZNode的stat结构包含哪些信息?

三、架构与集群

  1. ZooKeeper的架构是怎样的?
  2. ZooKeeper集群中各角色的职责是什么?
  3. ZooKeeper集群最少需要几台服务器?为什么?
  4. ZooKeeper如何保证数据一致性?
  5. 什么是ZAB协议?
  6. ZAB协议的工作流程是怎样的?
  7. ZooKeeper的选举算法是什么?
  8. ZooKeeper的初始化选举和崩溃选举过程有何不同?
  9. ZooKeeper的数据同步原理是什么?
  10. 什么是脑裂问题?ZooKeeper如何避免脑裂?
  11. ZooKeeper的Epoch机制是什么?

四、应用场景

  1. ZooKeeper的典型应用场景有哪些?
  2. 如何使用ZooKeeper实现分布式锁?
  3. ZooKeeper在服务注册与发现中如何发挥作用?
  4. 如何使用ZooKeeper进行配置管理?
  5. ZooKeeper如何实现集群管理?
  6. ZooKeeper在Master选举中如何应用?
  7. ZooKeeper如何用于元数据管理?

五、高级特性

  1. 什么是Watcher机制?
  2. 如何使用Watcher机制?
  3. Watcher机制的特点是什么?
  4. ZooKeeper的ACL机制是什么?
  5. ZooKeeper支持哪些ACL策略?
  6. ZooKeeper的会话管理机制是怎样的?
  7. ZooKeeper如何处理事务?
  8. ZooKeeper的临时节点与持久节点的区别是什么?
  9. ZooKeeper的持久化机制有哪些?

六、性能与运维

  1. 如何优化ZooKeeper的性能?
  2. ZooKeeper性能监控应该关注哪些指标?
  3. ZooKeeper的负载均衡策略是怎样的?
  4. 如何部署ZooKeeper集群?
  5. ZooKeeper集群如何进行扩容?
  6. ZooKeeper的日志如何管理?
  7. ZooKeeper的常见故障有哪些?如何排查?

七、与其他技术的比较

  1. ZooKeeper与etcd、Consul的主要区别是什么?
  2. ZooKeeper与Redis在分布式锁实现上的区别是什么?
  3. ZooKeeper与Raft协议的关系是什么?