Zookeeper详解(最详细的zookeeper解析+项目实例)

本文介绍了Zookeeper的基本概念,包括其作用、数据模型和常用数据格式。详细讲解了Zookeeper的JavaAPI(Curator)的使用,涉及创建节点、查询、更新和删除操作。还涵盖了Zookeeper在分布式锁和集群选举中的应用,以及Zookeeper集群的搭建和核心理论。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Zookeeper

在学习Zookeeper之前,我们还是先了解它的概念:

一、什么是zookeeper?

1、简介

zooKeeper 是一个开放源码的分布式协调服务,主要为了解决分布式架构下数据一致性问题, 它是集群的管理者, 监视着集群中各个节点的状态,根据节点提交的反馈进行下一步合理操作。 最终, 将简单易用的接口和性能高效、 功能稳定的系统提供给用户

2、应用场景

分布式配置中心、分布式注册中心、分布式锁、分布式队列、集群选举、分布式屏障、发布/订阅等场景。

二、Zookeeper数据结构

1、简介

Zookeeper的数据模型类似于文件系统,是树状结构,每个树节点(目录)对应一个Znode节点。这些目录节点和我们普通的目录一样可以新建、删除、修改。

2、常用的数据格式有:

我们常用的主要有四种类型的znode。

1、持久化目录节点:PERSISTENT 客户端与zookeeper断开连接后,该节点依旧存在,只要不手动删除该节点,他将永远存在。

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

3、临时目录节点:EPHEMERAL : -e 客户端与zookeeper断开连接后,该节点被删除。

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

3、zookeeper客户端常用命令:

1)、连接zookeeper服务端(Linux): ./zkCli.sh -server ip:port

2)、断开zookeeper服务端的连接: quit

3)、查看帮助: help

4)、查询所有的目录节点: ls /

5)、创建目录节点: create /节点名 值(可写可不写)

6)、设置目录节点的值(修改时也可以): set /节点名 值

7)、删除单个目录节点: delete /节点名

8)、删除带有子节点的目录: deleteall /节点名

9)、创建临时目录节点: create -e /节点名 值(可写可不写)

10)、创建持久化目录节点: create -s /节点名 值(可写可不写)

11)、查询目录节点的详情信息: ls -s /节点名

三、Zookeeper JavaAPI(Curator)

1、简介:

Apache Curator 是一个用于Apache ZooKeeper 的Java 客户端框架。 Curator 提供了一组易于使用的API和工具,简化了与ZooKeeper 的交互,同时提供了更高级别的抽象和功能。

2、搭建和使用Curator(以下环境使用的是spring boot)
1)、引入Curator支持
<!-- zookeeper支持 -->
<dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.6.4</version>
</dependency>
<!-- curator-recipes -->
<dependency>
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-recipes</artifactId>
    <version>5.5.0</version>
</dependency>
<!-- curator-framework -->
<dependency>
    <groupId>org.
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值