开发者社区> 牧小农> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: 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:短暂有序节点


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
ZooKeeper简介和概念知识
ZooKeeper简介和概念知识
29 0
使用JMX Exporter监控Rainbond上的Java应用
可通过本文了解部署在 Rainbond 上的 Java 应用如何使用 JMX Exporter 暴露 JVM 监控指标。
88 0
Zookeeper入门
Zookeeper的入门使用和demo
230 0
.NET Core实战项目之CMS 第五章 入门篇-Dapper的快速入门看这篇就够了
 写在前面 上篇文章我们讲了如在在实际项目开发中使用Git来进行代码的版本控制,当然介绍的都是比较常用的功能。今天我再带着大家一起熟悉下一个ORM框架Dapper,实例代码的演示编写完成后我会通过Git命令上传到GitHub上,正好大家可以再次熟悉下Git命令的使用,来巩固上篇文章的知识。
1786 0
zookeeper - 选举(2)
概述     zookeeper核心知识点之一就是集群之间的选举,而且很多文章都把选举跟paxos进行对比,其实我觉得选举过程其实跟paxos没什么关系(的Paxos算法和zookeeper的关系)。
721 0
过滤器入门看这一篇就够了
什么是过滤器 过滤器是Servlet的高级特性之一,也别把它想得那么高深,只不过是实现Filter接口的Java类罢了! 首先,我们来看看过滤器究竟Web容器的哪处: 从上面的图我们可以发现,当浏览器发送请求给服务器的时候,先执行过滤器,然后才访问Web的资源。
1360 0
ZooKeeper 入门
zookeeper,通俗的来讲,他目前在各种分布式系统中充当大脑的角色,给各个应用管理配置文件,提供应用的分布式锁,提供应用命名,提供组服务这四个功能. 1. 管理配置文件(维护配置信息) 1.
7591 0
+关注
牧小农
业精于勤荒于嬉,行成于思毁于随。
134
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载