Zookeeper

1. 什么是Zookeeper

答:Zookeeper是分布式框架,提供了协调分布式应用的基本服务,可用来做配置中心。Zookeeper也需要配置集群,选举自己的leader。


Zookeeper_第1张图片
基本框架

Zookeeper_第2张图片
基本框架

Zookeeper_第3张图片
zookeeper设计目标
2. Zookeeper和etcd有什么区别?
  • 请查看
  • consul也是zookeeper的竞品
  • doozer也是zookeeper的竞品
  • 差别在于功能多少和数据存储的方式
3. 什么是分布式协调服务?
  • 从单机变为集群的时候,同一个任务分配到多个机器实现,但是时许(即先后顺序)还是需要保证。
  • 从单机变为集群的时候,多台机器对同一个资源的争夺和分配。
  • 将这些服务单独zookeeper就是提供的分布式协调服务。


    Zookeeper_第4张图片
    使用案例
4. java中如何链接zookeeper?
  • 可以用原生的zookeeper的jar,但是比较底层
  • 可以用第三方的client,例如zkclient或者curator
5. zookeeper的核心概念有什么?
  • session


    Zookeeper_第5张图片
    session
  • watcher


    Zookeeper_第6张图片
    监听机制

    其中get path触发的是data watch,其他均是child watch


    Zookeeper_第7张图片
    数据监听机制

    Zookeeper_第8张图片
    数据监听机制
  • 数据模型,临时节点一旦在会话结束之后就会消失。


    Zookeeper_第9张图片
    数据模型

    Zookeeper_第10张图片
    命名规范

    Zookeeper_第11张图片
    节点

    Zookeeper_第12张图片
    节点
  • 其中id代表事务id


    元数据stat结构

    Zookeeper_第13张图片
    zookeeper时间表示

你可能感兴趣的:(Zookeeper)