简介
ZooKeeper is a distributed, open-source coordination service for distributed applications.
zk是一个服务于分布式系统的分布式的开源的协调服务。通过使用其提供的API,我们可以很容易实现分布式集群的消息同步,资源统一配置,监控等一系列操作。
zk的核心是ZooKeeper Atomic Broadcast(ZAB,zk原子消息广播协议),是一种特别为ZooKeeper设计的崩溃可恢复的源自消息广播算法。
zk的集群通常由一组机器组成。客户端可以从集群的任何一台机器读取到相同的资源配置,且当存在其中的一台机器不可用时,客户端会自动切换到其他正常的机器。如下图所示。
zk的每台消息存储结构类似于文件存储目录的树状存储。如下图所示。
客户端通过对node节点消息的增删改查和监控,从而实现对自身分布式应用的协调和管理工作。常见的zk实践如:kafka,hadoop,hbase,dubbo等。
单机安装及配置
zk运行于java环境之上,因此首先确保你的系统已经安装好了jdk。jdk的安装这里就不再赘述了。
mac os 使用brew安装zk
//安装
brew install zookeeper
//启动服务端
zkServer start
//启动客户端
zkCli
通过上面的简单命令,不出意外的话,zk已经可以正常服务了。上面涉及到的brew的使用,这里也不做过多介绍。
zk的基本配置 conf/zoo.cfg
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
- tickTime zk的基本事件单位(ms),心跳检测的时间间隔。最小会话时长将是tickTime的2倍。
- dataDir zk数据存储目录
- clientPort 客户端连接端口
zk常用命令
//查询目录
ls /
//新建节点
create /zk_test data
//查询节点信息
get /zk_test
//修改节点信息
set /zk_test updateData
//删除节点信息
delete /zk_test
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名,转载请标明出处
最后编辑时间为: