介绍:
Zookeeper是经典的分布数据一致性解决方案。它致力于提供高性能,高可用和严格访问分布式应用程序控制功能的顺序
Apache Hadoop大数据生态系统中大多数组件的图标是动物,例如?,?,?,?和Zookeeperessence的图标
动物园管理员的详细理论解释和功能,请检查新秀教程Zookeeper。本文都是实际的战斗
下载最新版本的Zookeeper
创建一个文件夹
安装本地文件夹并启动服务(请注意安装您自己的目录)
参数解释
查看容器
输入容器(Zookeeper)
第一条方法
第二种方式(建议)
思维导图:
接下来是每个命令的使用和演示
实际上,最重要的命令应该是帮助命令,您可以查看帮助
示范:
创建一个长期的节点:(默认情况下创建一个持久的节点)
创建持续的顺序节点:
创建有序节点时,Zookeeper将构成有序的,这是我们知道的节点背后唯一的增量数字后缀
创建一个临时节点:
当前客户端和Zookeeper连接到断开连接后,将清除临时节点
重新连接后:
创建一个临时订单节点:
创建一个容器节点:
创建一个TTL节点:
获取[-s] [-w]路径//查看节点存储的值及其节点状态
查看信息并添加一个监视器:只需注意一次监视器一次角色,并在此命令中监视NODES数据更新
stat [-w]路径//查看节点状态
ls [-s] [-w] [-r]路径//在特定点下查看子节点
这里是指新秀教程Zookeeper权限控制ACL
Zookeeper的ACL(访问控制列表)在生产环境中尤为重要,因此本章专门引入。
ACL权限可以设置相关的读取并为节点编写权限,以确保数据安全性。
权限可以指定不同的权威范围和角色。
Zookeeper的ACL使用[方案:ID:权限]形成权限列表。
方案:权限模式
此模式方法的授权对象只有一个任何人,这意味着所有登录服务器的客户端都可以执行某些权限IP到连接的客户端以使用IP地址身份验证方法Authentication MethodAuthentication Digestion digest使用用户:密码验证ID:授权对象:
代表授权的对象取决于模式
允许
也就是说,当前用户在节点上的权限是专门的:
读取r读取节点和子节点列表的权限。W设置节点数据的权限创建C。
我们可以查看节点的访问权利。我们可以看到,授权创建节点的默认访问权限,也就是说,任何人都有该节点的所有权
例如,我想设置一个节点并仅读取,您可以这样设置它:
您可以在这里看到我设置了只能由指定的IP操作的节点。由于它不是指定的IP,因此提示
此模式需要与命令匹配
消化授权模式实际上与验证认证模式相同。区别在于身份验证将自动加密密码,而Digest需要手动加密密码
格式
当然,您可以设置各种ACL,只需将其分开
官方文件:Zookeeper3.8.0官方文件
首先,您需要添加以下依赖项。实际上,核心只是这种依赖性。在这里,我添加了其他一些依赖项来打印日志。
这里的每个示例都会将常用的方法写入工具类,以便我们将来重复使用工具类
让我们首先创建一个新的工具类。我在这里称之为,也可以称为zkutils,主要是封装一些常用的方法
已经有一种在上面的代码中连接的方法。在这里关注的需求之一是,在第十七行代码中,它是Java Juc的一类。主要角色是让一个或多个线程等到其他线程直到其他线程播放一组操作。使用Countdown方法和等待方法,CountDownLatch在初始化时需要将给定的整数指定为计数器。被称,柜台将减少1;当调用等待方法时,如果计数器大于0,则该线程将被阻塞,直到计数方法将计数器降低到0 x 0,并且线程将继续执行。无法重置计数器。当计数器减小为0时,呼叫方法直接呼叫等待方法。
让我们看一下Zookeeper的构造函数:
他将通过监视器,您可以认为这里没有主线程。如果我们不需要阻止主线程,则可以在段落初始化之前完成Zookeeper,因此在这里我们使用CountDownLatch作为执行该执行的通知,将执行执行为执行,因为执行应在执行中,应当将其执行。主线程将继续执行
结果:
这里有很多事情,我们与Linux命令一一对应
让我们看一下Zookeeper连接对象中的方法。总共有三个
如前所述,您可以设置多个并用逗号分开。在这里,我们介绍了一个集合,表明我们的控制权限
让我们看一下构造函数:
我们一一查看特定参数:
总而言之,如果我们想创建一个默认节点(持久,任何人拥有所有权),我们必须写下:
看起来有点麻烦。所有的Zookeeper均正式封装了一个课程,以指示访问权限。让我们看一下ID。这是一个接口。
使用该课程上方的代码,我们可以写下:
当然,只有一些简单的模型被封装。复杂的模式仍然需要由我们自己手动创建,但是理解原则非常简单。
这是ACL的四个模式:
CreateMode是一种枚举类型,用于表示创建节点的类型,包括有序,无序,持久,临时
枚举的相应价值是:
持久(持续)长 - 截止等值(短暂的)临时顺序(顺序)有序
我已经谈论过很多理论知识,现在我开始练习
创建一个持久的节点以添加到工具类中:
有测试:
常见的有序和长时间的节点持久节点是默认节点类型。其他节点也可以封装,也可以直接使用最原始的方法。
创建验证模式节点以将方法添加到Zkhelper
测试:
结果:
其他类型节点可以执行包装工具类
要查看的命令是:
这里有一些封装方法。首先,封装GET和STAT方法,并添加以下方法。
测试:
下一个是
测试:
结果:
其他方法可以执行包装和测试
更新节点:
监视器是动物园管理器中非常重要的组件。可以说,Zookeeper的所有特征都与显示器密不可分!
我们观察到API可以发现许多地方可以引入监视器,但是监视的内容不相同
让我简单地在这里演示,然后将其添加
测试
结果(您只能在更新节点上看到):
原始:https://juejin.cn/post/7103406988079398942