1. 什么是zookeeper?
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
zookeeper是apache的顶级项目之一。可见它的重要性。
2.zookeeper的数据结构?
zookeeper与标准的文件系统非常相似。也是用斜线“/”来表示上下层级关系。
每个节点(即zNode)都能存储数据,但在实际中只存储一些关键数据,不建议存储复杂数据。每个zNode默认存1M的数据,可以用配置最大为4M大小。
zookeeper分为服务端和客户端。由客户端来操作节点。
节点类型有四种:
持久节点,临时节点,持久排序节点,临时排序节点。
每个节点可以做ACL控制。
ACL就是Access Controller List。做权限控制的。
权限分为CREAT,READ,WRITE,DELETE,ADMIN,ALL.。简化即:crwda。
客户端设置节点的权限使用 setAcl命令(方法),获取某个节点是getAcl。如果没有READ权限,getAcl无效。
zookeeper内置了4类权限:world,auth,digest,ip。
节点权限无继承,每个权限都是自身使用。
DELETE是针对当节点的子节点操作。其它操作都是针对节点本身。
3.zookeeper能做什么?
zookeeper可以做注册中心。
因为有了持久节点和临时节点,客户端创建节点的时候根据实际情况选择。
临时排序节点可以做分布式锁。具体步骤略。
4.深入了解zookeeper
zookeeper选举机制。
其它待完善