zookeeper

paxos

  CAP  一致性  可用性  分区容错性

  2PC

  分布式协议起源

  角色:

    提议者:proposer   (pid,value)

    接受者:acceptor  

    学习者:learner  一个进程可用是多个角色

    法定集合: 

    预提案阶段: 

    提案阶段:

ZK

  类似文件系统 ZNode

  顺序访问  全局唯一递增编号  反映事务的先后顺序

  全量数据保存在内存  提高服务器吞吐量,和性能,降低延迟

 

  常规的集群角色 master -slave

  zk集群角色:

    leader   投票 写

    follower  投票 不写  读

    observer  不投票 不写  读

  session: 一个tcp长连接 ,在sessionTimeout内重新连上 则是同一个session

  节点:

    集群节点

    数据节点 ZNode 内存中

      持久节点:永久

      临时节点: 会话有关

      每一个Znode 对应一个stat的数据结构 包含version(当前版本) cversion(子节点版本) aversion(acl版本)

   ACL

    create delete

    read write

       admin

崩溃恢复

  启动  或者 leader 故障     进入崩溃恢复  选主

  选主,数据同步之后  退出 崩溃恢复

    已经被leader提交的事务能够被follower提交

    丢弃已经被跳过的事务

原子广播

  事务消息的二阶段提交

  新加入集群的节点,进行数据恢复/同步模式 

 集群配置

  zoo.cfg 

    clientPort=2181

    server.1=ip1:2888:3888

    server.2=ip2:2888:3888

    server.3=ip3:2888:3888

  myid文件

命令

  create path value 常见持久节点

  create -s -e

  ls path 读取

  get path     

  set path data 

   delete path   有子节点不能删除

API

  建立会话  异步  connecting  watcher

   创建节点

   Zkclient

   Curator

    分布式锁 根据时间戳生成唯一订单id

    分布式计数器  在线人数统计

    分布式Barrier

    工具类   ZKPaths EnsurePath

配置中心

 

负载均衡

 

命名服务

  分布式唯一id

   uuid

分布式锁

  排他锁  获取锁   释放锁

  共享锁

  羊群效应   改进分布式锁

 分布式队列  FIFO

分布式屏障

----------------------------------------------------------

内部原理

  

 

posted @ 2020-04-21 15:50  嘤嘤怪  阅读(137)  评论(0编辑  收藏  举报