zookeeper入门学习之java api会话建立《四》

 在上一篇zk中简单玩了下api的连接创建会话,也总是留下了很多坑,就是那些引申开来,搞不明白的问题。有时候想追究起来,问题总是那么无穷无尽,有时候问题比答案更有力度吧,到最后都是些哲学问题吗?存在的这一切,还是一切归于虚无,小时候总是被教育要讲科学,但是感觉科学怎么那么没有温度,不如哲学问题那么温暖人心。

    瞎逼逼好了,这里还是写点java api的使用吧,不如写点代码

文档地址 3.5.3 :http://zookeeper.apache.org/doc/r3.5.3-beta/api/index.html

    3.5.3的beta版本里面有很多个创建方法(比3.4.X又丰富了api),开始我们总是拿最简单的那个开始,没错,就是第一个,这是一个同步创建的接口。

 执行的结果 很满意

这边的参数文档说明

   path  路径,已经已经存在了,会报创建节点已经存在的从错误(KeeperException.NodeExists),并且zookeeper api不支持递归创建,就是不能在父节点不存在的情况下(KeeperException.NoNode),创建子节点,第三方的工具封装了,可以省下很多活。

    data 数据,这个目前zookeeper只支持数组 buty[],就是说需要我们自己序列化,复杂对象可以使用第三方工具来序列化,那我想存复杂对象的场景是怎么样的。

    acl 权限控制,这边使用了Ids.OPEN_ACL_UNSAFE

createMode 节点mode,下面的解释也很清晰,上面我们创建的是临时节点,会话结束 就 die啦,还有持久型的,都有顺序型,后面补上两种带TTL的,当没有子节点的时候,自动删除。

  我们看看 创建顺序节点,顺序总是有应用场景的

日志:

 其他都是类似的,还有一个异步创建的的

日志:

    异步创建还是方便的,其中主要是 AsyncCallback的实现,回调接口好多,不看了,其中stat是节点zhuagn状态。

  里面就一个方法,参数的说明也在下面

    在创建的时候

    设置RequestHeader,CreateRequest和CreateResponse,这个套路很熟悉呀,不过ReplyHeader是干嘛的,暂时不知道,最后执行的就是我们io处理的

ClientCnxn对象啦。

    在cnxn里面:把数据封装到了packet中处理,到了这一层,居然把数据统一到packet啦,这边的注解写的 xid只是在实际发送的地方生成。

有什么讨论的内容,可以加我公众号:

猜你喜欢

转载自blog.csdn.net/woshiyexinjie/article/details/82429898
今日推荐