Zookeeper入门看这篇就够了(2)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: Zookeeper入门看这篇就够了

Zookeeper单机模式安装


java 环境


配置JAVA环境,检验环境 java -version


下载安装Zookeeper


下载地址:https://zookeeper.apache.org/releases.html


屏幕快照 2022-05-11 上午11.25.11.png



下载解压Zookeeper


cd /usr/local/

wget https://dlcdn.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz

tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz

cd zookeeper-3.7.0/


重命名配置文件 zoo_sample.cfg


cp conf/zoo_sample.cfg conf/zoo.cfg


启动ZK


./bin/zkServer.sh start


连接ZK客户端


./bin/zkCli.sh


当我们看到下图的信息的时候,表示我们启动成功


屏幕快照 2022-05-11 上午11.25.36.png


Zookeeper命令


基本命令


create : 在树中的某个位置创建一个节点

delete : 删除一个节点存在:测试节点是否存在于某个位置

get data : 从节点读取数据

set data: 将数据写入节点

get children : 检索节点的子节点列表

sync : 等待数据被传播

操作Zookeeper


查看Zookeeper中包含的key

ls /


创建一个新的Znode

创建成功以后我们可以使用 ls /查看我们创建的内容

create /zkMxn muxiaonong


ls /

[zkMxn, zookeeper]


get命令获取创建Znode的内容

get /zkMxn


set 命令来对 zk 所关联的字符串进行设置

set /zkMxn mxn666


删除Znode

delete /zkMxn


Java Api操作 ZK


1. 导入Jar包


<dependency>    
        <groupId>org.apache.zookeeper</groupId>   
        <artifactId>zookeeper</artifactId>
        <version>3.6.3</version>
</dependency>
<!--junit单元测试--> 
<dependency> 
        <groupId>junit</groupId> 
        <artifactId>junit</artifactId> 
        <version>4.13.2</version> 
        <scope>runtime</scope> 
 </dependency>


2. API操作Zookeeper


创建Zookeeper对象


public ZooKeeper(String connectString, int sessionTimeout, Watcher watcher) throws IOException {
        this(connectString, sessionTimeout, watcher, false);
    }


connectString: 连接的地址,包括主机名和端口号,多个的话用逗号隔开

sessionTimeout: 等待客户端通信的最长时间,客户端如果超过这个时间没有和服务端进行通信,那么就认为该客户端已经终止,一般设置值为 5-10秒,单位为毫秒

watcher: 监听器,用于接收会话事件的接口,需要自己定义,实现process()方法

连接Zookeeper


Zookeeper zkClient = "";
String connectStr = "192.168.2.1:2181";
zkClient = new ZooKeeper(connectStr, 5000, new Watcher() {
    @Override
    public void process(WatchedEvent watchedEvent) { }
});



创建节点


public String create(String path, byte[] data, List<ACL> acl, CreateMode createMode) throws KeeperException, InterruptedException {}


path: 节点路径

data: 节点数据

acl: 节点权限,例如:ZooDefs.Ids.OPEN_ACL_UNSAFE

OPEN_ACL_UNSAFE:完全开发,采用world验证模式,由于每个ZK连接都有world验证模式,所以当我们节点设置了该参数时,对所有连接开放

CREATOR_ALL_ACL: 创建该Znode连接的拥有所有权限,这里采用的是auth验证模式,用sessionID做验证,如果设置了该参数,只有创建改Znode节点的连接才能对这个Znode进行任何操作

READ_ACL_UNSAFE:所有的客户端都可读,这里采用world验证模式,和第一条同理,所有连接都可以读取该znode

createMode: 节点类型,例如:CreateMode.PERSISTENT

PERSISTENT:持久节点

PERSISTENT_SEQUENTIAL:持久有序节点

EPHEMERAL:短暂节点

EPHEMERAL_SEQUENTIAL:短暂有序节点


相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
7月前
|
存储 消息中间件 负载均衡
Zookeeper基础入门与安装部署
Zookeeper基础入门与安装部署
91 0
|
7月前
|
NoSQL 中间件 API
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)(下)
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
187 2
|
7月前
|
NoSQL Java API
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)(上)
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
181 0
|
Dubbo Java 应用服务中间件
springboot + dubbo + zookeeper入门到实战超级详解
springboot + dubbo + zookeeper入门到实战超级详解
226 0
|
7月前
|
NoSQL Java API
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
344 0
|
7月前
|
Dubbo Java 应用服务中间件
分布式应用简单入门及SpringBoot整合Dubbo+Zookeeper
分布式应用简单入门及SpringBoot整合Dubbo+Zookeeper
184 1
|
7月前
|
存储 Shell Linux
ZooKeeper【部署 01】单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置+shell自动部署脚本(一篇入门zookeeper)
ZooKeeper【部署 01】单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置+shell自动部署脚本(一篇入门zookeeper)
641 0
|
存储
zookeeper入门(二)
接触zookeeper也有一段时间了,一直有一个问题困扰着我,那就是zookeeper在codis中扮演什么角色,zookeeper中到底存储了哪些数据。
58 0
|
存储 消息中间件 设计模式
zookeeper入门(一)
Zookeeper 是一个开源的分布式的,为分布式应用提供协调服务的 Apache 项目
128 0
zookeeper入门到精通08——服务器节点动态上下线案例实战
zookeeper入门到精通08——服务器节点动态上下线案例实战