本文的内容主要来自Zookeeper官方文档:https://zookeeper.apache.org/doc/r3.4.14/index.html
官方手册有一句话对Zookeeper的描述很精确,ZooKeeper:分布式应用程序的分布式协调服务。
ZooKeeper允许分布式进程通过共享的层级命名空间相互协调,该命名空间的组织方式与Linux文件系统类似,比如Linux中存在/usr/local/test这个路径,Zookeeper的思想就是为一个路径赋值,比如/usr/local/test的值为‘xxxxx‘,分布式应用进程可以在Zookeeer中创建路径、为路径赋值、读取路径值,删除路径,通过这些操作来实现分布式服务的协调。
上图中的每一个节点被称为一个znode,每个znode都有自己的相关属性(包括赋予其的value),并且每个节点都可以创建自己的子项。
Zookeeper中节点有两种,一种就是上图中的每一个路径中的节点;另外一种是Zookeeper集群中,每一个Zookeeper服务器也被称为节点。
Zookeeper虽然是对分布式应用程序的协调服务,那么可以先看一下zookeeper是如何实现协调的,有哪些协调的案例。
其实Zookeeper的安装特别简单,也不能算安装了,只需要将Zookeeper下载后解压,就完成了安装操作,但是还需要进行一些配置操作。
下载地址:http://zookeeper.apache.org/releases.html
本文所用的3.4.14版本,下载链接
su - root # 请务必切换为root身份 wget http://www.trieuvan.com/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz tar -zxf zookeeper-3.4.14.tar.gz cp -r zookeeper-3.4.14 /usr/local/zookeeper # 创建存放数据文件的目录 mkdir /usr/local/zookeeper/data
此时,Zookeeper就安装成功了,只不过还需要进行一些配置才能启动。
Zookeeper的配置文件在path-to-zookeeper/conf目录下,文件名为zoo.cfg。初始安装的Zookeeper有一个zoo_sample.cfg示例文件,可以拷贝一份,在进行修改。
root@ubuntu:/usr/local/zookeeper# cd conf/ root@ubuntu:/usr/local/zookeeper/conf# ls configuration.xsl log4j.properties zoo_sample.cfg root@ubuntu:/usr/local/zookeeper/conf# cp zoo_sample.cfg zoo.cfg root@ubuntu:/usr/local/zookeeper/conf# ls configuration.xsl log4j.properties zoo.cfg zoo_sample.cfg
修改zoo.cfg中的下面三项:
# 心跳间隔(毫秒),超过2倍tickTime将会被认为会话超时 tickTime=2000 # 保存zookeeper数据库快照的目录,前面安装zookeeper时已经创建了该目录 dataDir=/usr/local/zookeeper/data # 监听的端口号,用于接收客户端请求 clientPort=2181
Zookeeper中可执行文件都存放在zookeeper安装路径下的bin目录下,而对Zookeeper服务器运行状态管理,使用的是zkServer.sh这个脚本。
通过传入start | stop | restart | status来管理Zookeeper服务器的运行状态。
/usr/local/zookeeper/bin/zkServer.sh start /usr/local/zookeeper/bin/zkServer.sh restart /usr/local/zookeeper/bin/zkServer.sh stop /usr/local/zookeeper/bin/zkServer.sh status
通过命令行的方式登录到Zookeeper服务器,可以使用Zookeeper提供的zkCli.sh脚本,位于/usr/local/zookeeper/bin目录下。
原文:https://www.cnblogs.com/-beyond/p/10993228.html