Zookeeper知识点

来源:互联网 发布:明年今日 知乎 编辑:程序博客网 时间:2024/06/04 22:47

ZooKeeper作为J2EE体系内一款高性能协调器,广泛用于SOA等场景,需要简单了解ZK的一些关键特性

  • 分布式系统
    • CAP原则,不能同时满足,如何取舍
    • 一致性(Consistence) (等同于所有节点访问同一份最新的数据副本)
    • 可用性(Availability)(每次请求都能获取到非错的响应——但是不保证获取的数据为最新数据)
    • 分区容错性(Network partitioning)(以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。)
    • 一致性原则,分布一致性算法
    • 2PC/3PC算法,改进,优缺点
    • Paxos协议
    • Paxos 里面的四个角色:Proposer,Acceptor,Client,Learner
    • Paxos 如何避免2PC的脑裂问题
    • Paxos 的一次决议过程,两个阶段
    • Paxos 两个决议阶段存在的问题,高并发情况下第一个阶段通过的决议会被拒绝
  • ZooKeeper相关

    • 基于Paxos拓展的ZAB(Zookeeper Atomic Broadcast)协议
    • Leader选举
    • Atomic Broadcast
    • Leader角色为了解决paxos协议的效率问题
    • ZooKeeper实现的主要功能
    • 顺序一致性
    • 原子性
    • 单一视图
    • 可靠性
    • 实时性
    • ZK写入过程描述
    • ZK的Watch机制实现原理
    • ZK常见应用
    • 分布式锁,惊群效应,实时数据不一致如何处理
    • ZkNode报文大小管理,1M以下
    • 跨客户端视图的并发一致性:ZooKeeper并不保证在某时刻,两个不同的客户端具有一致的数据视图。因为网络延迟的原因,一个客户端可能在另一个客户端得到修改通知之前进行更新。假定有两个客户端A和B。如果客户端A将一个节点/a的值从0修改为1,然后通知客户端B读取/a,客户端B读取到的值可能还是0,这取决于它连接到了哪个服务器。如果客户端A和B读取到相同的值很重要,那么客户端B应该在执行读取之前调用sync()方法。
    • 主备切换对于未提交的历史数据如何处理

    • 常见问题 http://www.importnew.com/24519.html