zookeeper 从是啥到咋用

发布时间:2024年01月15日
1、简介

? ? ? ? zookeeper 是管理分布式中间件共享数据、配置信息的分布式协调服务框架。

2、zookeeper 下载安装

? ? ? ? 下载安装参考之前搭建 Kafka 集群的博客:kafka丢弃zookeeper,使用kraft架构-CSDN博客

3、zookeeper 几种状态

1)、LOOKING:参加竞选状态;

2)、FOLLOWING:跟随 Leader 状态,同步 Leader 数据,参与选举投票;

3)、OBSERVING:观察 Leader 状态,同步 Leader 数据,不参与选举投票;

4)、LEADING:领导者状态,用于写数据和数据同步。

相关节点状态的配置:(修改配置文件 zoo.cfg)

peerType=observer # 指定zookeeper节点为observe状态,和下面server.x对应,此例只在myid为3的节点上才需要添加此配置

server.1=192.168.30.88:2888:3888
server.2=192.168.30.89:2888:3888
server.3=192.168.30.90:2888:3888:observer 
4、zookeeper 节点类型

1)、持久节点:创建后一直存在,除非手动删除。

2)、临时节点:与客户端会话绑定,会话结束临时节点自动删除,临时节点不允许有子节点

3)、顺序节点:节点带有序号,序号递增;临时节点、持久节点均可以是有序节点,并且都允许有子节点。

4)、容器节点:一个包含多个子节点的节点,子节点全部删除之后,容器节点会在未来某个时间删除。(删除时间不固定)。

5)、带有过期时间的节点:持久节点可以添加生存时间,以毫秒为单位。到时间不是自动删除,而是在未来某个时间点删除。

带过期的节点需要开启配置

extendedTypesEnable=true
5、zookeeper 客户端命令行操作
# 1、启停zookeeper
./zkServer.sh start/stop
# 2、连接客户端
./zkCli.sh -server ip:port
# 3、查看 zookeeper 所有命令
help
# 4、创建各种节点
create [-s] [-e] [-c] [-t ttl] path [data] [acl]
# 5、获取节点值
get [-s] [-w] path   # -s:获取节点状态;-w:监听path值是否改变
# 6、查看节点列表
ls [-w] path [-R]  # -w:只监听子节点是否变更,孙节点不监听
# 7、删除节点
delete [-v version] path  # 指定版本号删除(get -s path 查看 dataVersion)
# 8、递归删除节点
deleteall path [-b batch size]
# 9、更新节点
set [-s] [-v version] path data  # -v:加版本号是乐观锁实现
# 10、移除监听
removewatches path [-c|-d|-a] [-l]   # -c:移除子节点监听;-d:移除对节点数据监听;-a:移除所有监听;-l:没有与服务器连接,移除本地watch
6、zookeeper 命令使用java代码实现
6.1、引入依赖
<dependency>
	<groupId>org.apache.curator</groupId>
	<artifactId>curator-recipes</artifactId>
	<version>5.5.0</version>
</dependency>
6.2、查看子节点列表示例(其他示例同理)
public static void main(String[] args) throws Exception {
        // 隔1s,重试3次
        RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
        CuratorFramework client = CuratorFrameworkFactory.newClient("192.168.30.88:2181",retryPolicy);
        client.start();
        List<String> paths = client.getChildren().forPath("/");
        for (String str : paths){
            System.out.println(str);
        }
        client.close();
    }
7、zookeeper 客户端

? ? ? ? zookeeper 使用 prettyZoo 软件实现 zookeeper 可视化管理,安装包,关注微信公众号回复 “zookeeper” 获取。管理界面如下:

8、总结

? ? ? ? 本文介绍zookeeper 基本概念和基础命令使用,并且通过java代码实现客户端访问。以及zookeeper 客户端软件介绍,帮助大家快速入门zookeeper。

????????本人是一个从小白自学计算机技术,对运维、后端、各种中间件技术、大数据等有一定的学习心得,想获取自学总结资料(pdf版本)或者希望共同学习,关注微信公众号:it自学社团。后台回复相应技术名称/技术点即可获得。(本人学习宗旨:学会了就要免费分享)

文章来源:https://blog.csdn.net/zwl2220943286/article/details/135608364
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。