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

欢迎关注微信公众号:互联网全栈架构

什么是ZooKeeper?我们先来看看官网的定义:

b5d6738185f797c198cc357337dfae46.png

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

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

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

f688b98ed36ab9c47270145a35a5a5b7.png

znode有四种类型:

PERSISTENT:持久节点,是最常见的类型,客户端与ZooKeeper断开连接后,该节点依旧存在。

PERSISTENT_SEQUENTIAL:持久顺序节点。客户端与zookeeper断开连接后,该节点依旧存在,只是ZooKeeper给该节点名称进行顺序编号。

EPHEMERAL:临时节点。客户端与ZooKeeper断开连接后,该节点被删除。临时节点不能有子节点。

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

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

baa8ff36aac1a4494b61578c20a7a622.png

下面我们开始安装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 /,可以看到里面的内容:

04349a8d76b06585938fb4a5b73a17a3.png

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

a1a20c8b591c58d6861a5b983b3884ae.png

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

4cbbc7e4a84b92ca306be5364174d8c4.png

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

b50fd1122bfeef4c675011a7068c3ae1.png

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

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

鸣谢:

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

推荐阅读:

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

手把手:Spring Cloud Alibaba项目搭建

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值