1 ZK基本概念
传统分布式锁机制暴露出创建、获取和释放三个调用方法;这种设计存在缺陷:首先,要么预先提出一份详尽的原语列表,要么提供API扩展,以便引入新的原语;其次,以某种方式实现原语的服务使得服务丧失灵活性。
ZK并不直接暴露原语,他暴露了由一小部分调用方法组成的类似文件系统的API,包括ZK操作和维护一个小型的数据节点,这些节点称为znode,采用类似于文件系统的层级树状结构进行管理;
zookeeper数据节点图如果主节点的znode没有数据,表示当前还没有选举出主节点;上图为zookeeper为主从模式配置:
./workes节点为父节点,其下每个znode子节点保存了系统中一个可用从节点信息;
./tasks节点作为父节点,其下每个znode子节点保存了所有已经创建并等待从节点执行的任务节点信息;主从模式的应用的客户端在/tasks下添加一个znode子节点,用来表示一个新任务,并等待任务状态的znode节点。
./assign节点为父节点,其下每个znode子节点保存了分配到某个从节点的一个任务信息,当主节点为某个从节点分配一个任务,就会在/assign下增加一个子节点。
1.1 API
网友评论