第1关:创建/删除节点

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 第1关:创建/删除节点

第1关:创建/删除节点


任务描述


本关任务:熟悉并掌握四种类型节点的特点,并掌握节点的创建和删除。


相关知识


为了完成本关任务,你需要掌握:1.ZooKeeper服务器开启,2.客服端(zkCli.sh)连接服务器,3.命令行基本操作。


节点类型


ZooKeeper数据模型中的数据单元,称为数据节点(znode)。


ZooKeeper的数据模型是内存中的一个节点数,由斜杠(/)进行分割的路径,就是一个节点,每个节点除了保存自己的数据内容,还保存一系列属性信息。


ZooKeeper共有四种类型的节点:持久(persistent)节点、临时(ephemeral)节点、持久有序(persistent-sequential)节点和临时有序(ephemeral-sequential)节点。


持久节点和临时节点


持久(persistent)节点是指一旦这个节点创建成功,除非主动进行节点的移除操作(delete),否则节点会一直保存在ZooKeeper上。


临时(ephemeral)节点的生命周期是跟客户端的会话相关联的,一旦客户端会话失效,这个会话上的所有临时节点都会被自动移除。


有序节点


一个节点还可以设置为有序(sequential)节点。有序节点被分配唯一一个单调递增的整数。当创建有序节点时,一个序号会被追加到路径之后。例如,客户端创建了一个有序的节点,其路径为/zoo/task,那么ZooKeeper将分配一个序号,如1,并将这个数字追加到路径之后,最后该节点为/zoo/task1。


创建/删除节点


首先,需要启动服务器,并使用zkCli.sh连接服务器,进入客户端命令行界面。使用以下命令(进入如图界面):


zkServer.sh start
zkCli.sh -server 127.0.0.1:2181

31ec37913cf7f6613d52bc06df2d4aab.png


客户端命令行操作方法与shell命令行界面类似。


先列出根(root)的所有节点。使用以下命令(如下图所示):


ls /

762c9c722b3485b288826d914b3ea051.png


可以看到,节点树中只有一个根节点/zookeeper节点。


使用create命令创建节点。例如,创建名称为/zoo1的节点,再使用ls命令查看是否创建成功。使用以下命令(如图所示):


create /zoo1 ""
ls /


72d4bf0bdfaa4cc8a332e0a03f935f44.png


以上命令创建的节点为持久节点,还可以使用不同参数,创建临时(-e)节点和有序(-s)节点。例如,创建临时有序节点/zoo2并列出节点,使用以下命令(如图所示):


create -s -e /zoo2 ""
ls /


cb6af06977a9502364f8f059225af4d7.png


删除节点使用delete命令。例如,删除/zoo1节点并列出节点,使用以下命令(如图所示):


delete /zoo1
ls /


e46ac3fb527ded619967351dced86992.png


注意: 创建节点/zoo1和/zoo2时,指定了一个空字符串(""),说明当前节点不保存数据。然而,该接口中的这个参数可以保存任何字符串到节点中,例如,可以替换""为workers。但是,如果创建节点时,不指定一个空字符串(""),那么当前节点不会创建成功,且客户端不会有任何报错信息。例如,使用以下错误命令创建/zoo3(如图所示):



create /zoo3


56665ba085186c8976a19c4635e5f7bf.png


上图中表明/zoo3节点创建失败。所以,创建节点时,如果节点没有数据,也要指定一个空字符串""


编程要求


本关任务是使用命令行,进行以下操作:


  • 开启ZooKeeper服务器。
  • 使用客户端(zkCli.sh)连接客户端(IP:127.0.0.1,端口号:2181)。
  • 创建/enode临时节点(节点数据为空)。
  • 创建/spnode持久节点(节点数据为空)。
  • 断开客户端(zkCli.sh)与客服端连接。


测试说明


本关的测试需要用户在右侧的命令行下完成,用户只需将需要完成的命令在右侧命令行下直接操作即可,然后点击评测按钮,平台会自动验证用户是否按照要求去检测结果。


开始你的任务吧,祝你成功!


这个没啥就让你熟悉明令!!!


zkServer.sh start
zkCli.sh -server 127.0.0.1:2181
create -e /enode ""
create /spnode ""
quit



相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
4月前
|
存储 算法
头歌:第1关:有序单链表的插入操作
头歌:第1关:有序单链表的插入操作
214 0
|
4月前
|
存储 Python
删除链表节点详解
删除链表节点详解
|
3月前
|
存储
删除链表的节点
删除链表的节点
23 0
|
4月前
|
存储 算法
头歌【第2关:有序单链表中值相同的多余结点的删除操作】
头歌【第2关:有序单链表中值相同的多余结点的删除操作】
88 0
删除链表的中间节点
这个题类似于寻找链表中间的数字,slow和fast都指向head,slow走一步,fast走两步,也许你会有疑问,节点数的奇偶不考虑吗?while执行条件写成fast&&fast->next就OK,不理解可以画个图,自己举个例子就能看懂了。
51 0
节点的创建、添加、删除
节点的创建、添加、删除
98 0
|
JavaScript 前端开发 算法
获取节点的方法
获取节点的方法
101 0
|
存储 算法
删除链表的节点(简单难度)
删除链表的节点(简单难度)
74 0
删除链表的节点(简单难度)
第2关:子节点创建、列出、删除
第2关:子节点创建、列出、删除
257 0
第2关:子节点创建、列出、删除
|
前端开发 测试技术 程序员
删除链表中的重复节点.
删除链表中的重复节点.
删除链表中的重复节点.