【从入门到放弃-ZooKeeper】ZooKeeper入门

前言

ZooKeeper是一个分布式服务协调框架,能够用来维护分布式配置信息、服务注册中心、实现分布式锁等。在Hbase、Hadoop、kafka等项目中都有普遍的应用。随着分布式、微服务的普及,ZooKeeper已经成为咱们平常开发工做中没法绕过的一环,本文将从安装配置到最基础的使用入手,对其进行介绍。apache

安装部署

下载

在 http://mirror.bit.edu.cn/apache/zookeeper/stable/ 下载推荐的stable版本。能够直接下载编译好的bin文件。
目前最新的stable版本是3.5.5服务器

解压

将下载的文件解压至工做目录,个人工做目录是/var/workspace/zookeepersession

tar -xzvf apache-zookeeper-3.5.5-bin.tar.gz -C /var/workspace/zookeeper

配置


此时若是直接启动zookeeper是会失败的,提示找不到zoo.cfg文件。并发

须要咱们把conf目录中提供的zoo_sample.cfg示例配置文件,复制为一份zoo.cfg,zoo.cfg是默认的启动配置文件框架

cp ../conf/zoo_sample.cfg ../conf/zoo.cfg

启动


默认启动,使用config/zoo.cfg配置文件在后台启动分布式


前台启动,会将启动日志打印在终端。终端关闭后服务也关闭。微服务

访问


使用zcCli.sh -server host:port 访问ZooKeeper服务器。
不加-server参数时,默认使用127.0.0.1:2181oop

使用

ZooKeeper使用相似资源文件目录的方式来管理节点,每一个节点能够存储数据。
ZooKeeper有四种不一样类型的节点:学习

  • PERSISTENT:持久化节点,除非手动删除,不然会永久保存
  • PERSISTENT_SEQUENTIAL:持久化顺序节点,除非手动删除,不然会永久保存。默认会在用户设置的节点名称后,顺序的增长十位的数字字符串。如 test_0000000001
  • EPHEMERAL:临时节点,在session结束后,临时节点会被自动删除。
  • EPHEMERAL_SEQUENTIAL:临时顺序节点,在session结束后,临时节点会被自动删除。默认会在用户设置的节点名称后,顺序的增长十位的数字字符串。如 test_0000000001

help

使用zkCli.sh链接到服务端后,可使用help展现常见命令的使用方式。url

ls

列出某个路径下的节点

create


可使用create {path} 建立节点。
使用 create -s {path} 能够建立有序节点,后面添加十位递增的数字后缀。

使用 create -e 建立临时节点,当断开链接后,临时节点会被删除。

set/get

ZooKeeper的节点能够存储数据,使用set 方法将数据存在节点中。
使用get 方法,从节点中获取数据。

set -v {currentVersion} {path} {data}

节点的数据每次更新时,都会递增,若是要更新节点,请使用上面的命令修改,若是currentVersion不是最新版本时,则更新失败,相似乐观锁CAS。

delete

能够经过delete删除节点。

总结

经过上面的学习,咱们已经学会了ZooKeeper最基本的安装部署及使用方式。须要牢记:

  • ZooKeeper的节点是相似文件系统的管理方式
  • Zookeeper有四种节点类型,临时节点会在会话断开后自动删除,顺序节点后缀序号会自动递增
  • set数据时,能够指定版本号,版本号与当前版本一致时才更新。这种乐观锁的更新方式,能够避免并发时数据被覆盖


原文连接 本文为云栖社区原创内容,未经容许不得转载。

相关文章
相关标签/搜索