碰见ZooKeeper:初识

0. 什么是ZooKeeper

ZooKeeper 是一个开源的分布式,它的设计目标是将那些复杂且容易出错的分布式协同服务封装起来,抽象出一个高效可靠的原语集,并以一系列简单的接口提供个用户使用。html

ZooKeeper 有几大特征:node

易用

ZooKeeper 的理解和使用成本都很低,它提供的是一种层级式的命名空间,这一点和标准的文件系统相似。apache

可靠

ZooKeeper 服务能够支持集群模式,而且可以轻松扩展,客户端能够链接到任意一个服务器,都可以得到服务。bash

有序

ZooKeeper 的节点是能够保证有序的。每个更新操做都会被标记一个序号,ZooKeeper 执行的时候会按照顺序执行。服务器

快速

ZooKeeper 在读多写少的应用场景中能够实现快速响应。这是由于 ZooKeeper 自己的部署架构是主从模式,主节点能够响应读写请求,而从节点只能响应读请求。当读写比例大于10:1时,ZooKeeper 就能够利用扩展能力改善集群的响应速度。session

ZooKeeper架构图

介绍完了 ZooKeeper 的总体状况,咱们再来看看 ZooKeeper 的另外一个比较重要的概念——节点(Node)。架构

ZooKeeper 的节点叫作Znode,能够分为两种:一种是持久性的,一种是临时性的。每个 Znode 均可以存储数据,Znode 的更新是以版本更新的形式迭代的。所以,客户端接收数据的同时还会接收到版本信息。app

ZooKeeper 临时节点的生命周期是与 session 相关的,当 session 处于活跃状态时,临时节点会一直存在,当 session 消亡时,临时节点会被删除。分布式

Session

ZooKeeper 客户端在和 Server 端进行链接的时候,会建立一个 session,客户端能够主动关闭 session。当 ZooKeeper 服务端节点没有在指定时间内收到客户端消息的话,服务端也会关闭 session。若是创建链接出错,ZooKeeper 客户端也会自动和其余服务端节点尝试创建新的链接。设计

1. 安装 ZooKeeper

ZooKeeper 的安装方式很是简单,首先到官网下载 ZooKeeper 的安装包,而后解压安装包。

接着是修改配置文件,进入目录apache-zookeeper-3.6.2-bin/conf,从 zoo_sample.cfg 文件复制出来一个名为 zoo.cfg 的配置文件,修改dataDir=/data/zookeeper,这个目录用于存储 ZooKeeper 的数据。配置好以后,咱们就能够启动 ZooKeeper 了,不过为了更好的使用 ZooKeeper 命令,咱们把 ZooKeeper 相关命令配置到 PATH 中。

启动 ZooKeeper

如今就能够启动 ZooKeeper 了。只须要使用下面这个命令便可。

zkServer.sh start

启动以后,咱们来看一下 ZooKeeper 有没有报错,咱们来到 ZooKeeper 目录下的 logs 目录,输入命令

grep -E -i "((exception)|(error))" *

若是没有输出,说明 ZooKeeper 启动没有报错。

接着查看对2181端口的监听

netstat -an | grep 2181

正常监听的话,咱们就可使用客户端进行链接了。

体验 ZooKeeper 命令

在确保 ZooKeeper 服务端启动没有问题后,咱们使用客户端进行链接。

zkCli

链接时会有上图所示的日志输出。

链接好以后能够输入命令

ls -R /

这个命令用来查看 ZooKeeper 现有的节点。

/
/zookeeper
/zookeeper/config
/zookeeper/quota

最初只有几个 ZooKeeper 自带的目录。

这里可使用 create /app 命令来建立一个名为 app 的目录。

2. 小结

对于 ZooKeeper 的初印象到这里就结束了,目前我已经对 ZooKeeper 有了一个大概的了解,而且可以顺利在本机安装 ZooKeeper,对于 ZooKeeper 的命令也有必定的了解。

后面咱们会对 ZooKeeper 常见的应用进行介绍。

相关文章
相关标签/搜索