您的位置:首页 > 编程语言 > Java开发

zookeeper学习之java API会话建立<四>

2017-08-29 00:00 330 查看
摘要: zookeeper

在上一篇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只是在实际发送的地方生成。



微信公众号
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ZooKeeper