“八面玲珑”的ZooKeeper入门介绍

共 1879字,需浏览 4分钟

 ·

2023-10-17 06:43

欢迎关注微信公众号:互联网全栈架构
什么是ZooKeeper?我们先来看看官网的定义:

ZooKeeper是为分布式应用而设计的高性能协调服务。对于一些通用的服务,比如命名、配置管理、同步和分组管理等,ZooKeeper把它们封装成简单的接口,这样就不需要开发人员从头开始编写。你能够非常便捷地使用它来实现共识、分组管理、领导者选举和现场协议。还可以实现你自身的特定需求。

简单来讲,ZooKeeper是一个开源的分布式系统协调服务,对于分布式系统常用的功能,比如分布式锁、配置管理、leader选举等提供了支持。

ZooKeeper维护一个类似文件系统的数据模型,跟文件系统不同的是,ZooKeeper在内存中维护这些数据,所以速度会快很多,同时,这些节点都可以有数据,因为这些数据通常都是一些状态、配置、位置等信息,所以它们往往都不太大,在ZooKeeper的术语中,这些节点叫做znode:

znode有四种类型:

PERSISTENT:持久节点,是最常见的类型,客户端与ZooKeeper断开连接后,该节点依旧存在。
PERSISTENT_SEQUENTIAL:持久顺序节点。客户端与zookeeper断开连接后,该节点依旧存在,只是ZooKeeper给该节点名称进行顺序编号。
EPHEMERAL:临时节点。客户端与ZooKeeper断开连接后,该节点被删除。临时节点不能有子节点。

EPHEMERAL_SEQUENTIAL:临时顺序节点。客户端与ZooKeeper断开连接后,该节点被删除,只是ZooKeeper给该节点名称进行顺序编号。

ZooKeeper中还有一个重要的机制是监听,也就是watch,客户端可以监听一个znode,如果节点的数据发生改变,ZooKeeper会通知到客户端,这非常类似于设计模式中的观察者模式(关于观察者模式,可以查看之前的一篇文章:一呼百应:监听变化的观察者模式)。这个特性对于实现分布式应用中的一些通用功能非常有用,比如配置管理、状态同步等,只需要把配置、状态等信息存放在znode上面,相关的服务监听这个节点,并对这个节点的改变作出相应的处理,即可实现这些功能。

下面我们开始安装ZooKeeper,进行一些简单的操作,让读者朋友们有一个简单的认识。后续文章会继续进行讲解,包括集群安装、选举机制、代码实例等。安装之前,请确认机器上已经安装了Java。

把ZooKeeper安装包上传到目录/usr/local中,此处我用的是较新的版本:3.8.3,然后解压,切换到目录下,并且重命名配置文件,启动ZooKeeper:

tar -zxvf apache-zookeeper-3.8.3-bin.tar.gz
cd apache-zookeeper-3.8.3-bin
cp conf/zoo_sample.cfg conf/zoo.cfg
bin/zkServer.sh start

使用ZooKeeper客户端确认服务已经正常启动:bin/zkCli.sh,输入命令ls /,可以看到里面的内容:

创建一个新节点:create /fullstack followit

再次使用命令ls /,就可以看到刚刚创建的新节点了:

使用get命令可以看到节点的详细信息,get -s /fullstack

以上是关于ZooKeeper的入门介绍,后续会带来更多更深入的文章,敬请期待。

都看到这里了,请帮忙一键三连啊,也就是点击文末的在看、点赞、分享,这样会让我的文章让更多人看到,也会大大地激励我进行更多的输出,谢谢!

鸣谢:

https://zookeeper.apache.org/doc/current/zookeeperOver.html


推荐阅读:

一呼百应:监听变化的观察者模式

手把手:Spring Cloud Alibaba项目搭建

春天的故事:Spring框架的入门级知识

责无旁贷:超酷的责任链模式

聚沙成塔:聊聊建造者模式

公司裁员,码农竟然成了“帮凶”?(剧情杜撰)

浏览 138
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报