Zookeeper基本介绍

1. Zookeeper的基本数据模型

  • Zookeeper是一个树形结构,如下图所示,慕课网是个大类别,在此基础上又分为前端和后端两个小类,以此类推,就像一个树形结构。
    Zookeeper基本介绍
  • Zookeeper的数据模型也可以理解为linux的目录:/usr/local/…
  • 每个节点都称之为znode,可以有子节点,也可以有数据
  • 每个节点分为临时节点和永久节点,临时节点在客户端断开后消失
  • 每个zk节点都有各自的版本号,可以通过命令行来显示节点信息
  • 每当节点的数据发生变化,该节点的版本号会累加,相当于数据库里面的乐观锁
  • 删除、修改过时节点,版本号不匹配会报错
  • 每个zk节点存储的数据不宜过大,几K即可
  • 节点可以设置权限acl,可以通过权限来限制用户的访问

2. Zookeeper的作用

  • master节点选举,主节点挂了之后,从节点就会接手工作,并且保证这个节点是唯一的,这也是所谓选举模式,从而保证我们的集群是高可用的
  • 统一配置文件管理,即只需要部署一台服务器,则可以把相同的配置文件同步更新到其他所有服务器,此操作在云计算中用的特别多
  • 发布与订阅,类似消息队列MQ,dubbo发布者把数据存在znode上,订阅者会读取这个数据
    Zookeeper基本介绍
  • 提供了分布式锁,分布式环境中不同进程之间争夺资源,类似于多线程的锁
  • 集群管理,保证数据的强一致性