文档章节

zookeeper学习之zkClient<八>

woshixin
 woshixin
发布于 2017/09/05 22:50
字数 704
阅读 56
收藏 0

今日是农历的七月十五,被称为鬼节的一天(中元节),当然还是被称鬼节有趣一点,可以去吓吓胆小鬼。在,再往南的不远处,我的家乡那,这是一个重要的祭祖日子,一个小地方又会热闹起来,你不是一个人在奋斗。

码农,今晚,你走夜路吗?

 在之前写的dubbo中,已经dubbo没有使用zk提供的java api,而是使用了zkClient(据说kafka用的也是zkclient,下次瞄一眼),看了zkclient应该会更加懂一点dubbo的注册吧。这是一个对原生的api进行了封装的包,就是让你用起来更爽的客户端,前面介绍的api创建会话是异步的处理,watcher失效的反复注册,这都是一些繁琐的操作, ,maven如下

这是包中显示的作者,主要作者应该是sgroschupf,包都是他的名字哈,这是一个github开源的zk客户端(https://github.com/sgroschupf/zkclient),作者在上面写的是ZkClient: a zookeeper client, that makes life a little easier。

zkclient中依赖

不过 看作者好久没更新啦,也没提交什么

开始我们就是建立会话,你没看过,换成zkclient只有一句话啦,不用去关心异步的watcher返回结果。

来看看它的实现吧

这边可以看到默认会传一个java自带的序列化实现,当然还可以用hessian或者Kryo。

最后赋值属性,连接

connectfa方法执行连接zookeeper,这边还加了锁,用了ReentrantLock的

lockInterruptibly(),哎哟,这个又可以讲啦!当然这边是ZkLock extends ReentrantLock。_eventThread.start()是启动线程事件监听

 

这边执行连接的是_connection.connect(watcher);

实现这边,就知道用的就是java api啦,用了一个ReentrantLock

还有几个其他的构造函数

zkServers,sessionTimeout,connectionTimeout和zk api中前面的介绍是一样的,后面两个就是新角色啦,connection是接口IZkConnection的实现,还有一个是zkSerializer 自定义序列化,默认有两个方式

第一种构造函数,连接超时时间会设置Integer.max_value,连接失败,重试这么久也是够累的。

还有一个是可以传入自定义的序列化实现

不过,在zk的api中不是有一个拿到sessionId和sessionPasswd连接的操作,怎么zkclient这里没看到这样的构造方法,漏看了吗,还是没有,虽然看到

ZkClient(IZkConnection connection),但是没看到有实现那种逻辑的地方还。

是因为秋天来了吗,今天眼睛好酸痛呀,又干又涩的感觉,都不能睁开地太久,不过,我可以闭上眼睛写代码哈哈,这是要上天呀。

 

今晚还是很凉爽的呀!

 

公众号

 

© 著作权归作者所有

woshixin
粉丝 33
博文 374
码字总数 281324
作品 0
杭州
程序员
私信 提问
ZooKeeper 使用 ZKClient 获取子节点列表

ZkClient 是一个开源软件,也托管在 github。它封装了 zookeeper 原生 API。 使用 先需要在 javaws 网站上下载 ZKClient 的 jar 包。 注意 中的 IP 地址应该和 中配置的 IP 地址一致,且在 ...

兔之
2015/10/27
895
0
ZooKeeper学习笔记五 ZooKeeper开源客户端ZkClient

本文学习资源来自《从Paxos到ZooKeeper分布式一致性原理与实践》 ZkClient ZkClient 在ZooKeeper原生API接口之上进行了封装,是一个更易用的ZooKeeper客户端。同时,ZkClient在内部实现了诸如...

xundh
2018/04/28
0
0
【Spring Boot】26.分布式

简介 在本章节你可以学习到: dubbo和zookeeper的基本特性 一个简单的集成项目 zookeeper可视化工具和dubbo可视化工具 分布式和集群的特点 分布式系统(distributed system)是建立在网络之上...

落花时节又逢卿
2018/12/28
32
2
基于ZkClient往zookeeper分布式集群节点写入数据

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/zhangphil/article/details/100018752 zookeeper自身的ZooKeeper构建...

zhangphil
08/25
0
0
zookeeper 大量连接断开重连原因排查

问题现象 最后发现线上的zookeeper的日志zookeeper.out 文件居然有6G,后来设置下日志为滚动输出,参考: http://blog.csdn.net/hengyunabc/article/details/19006911 但是改了之后,发现一天...

横云断岭
2014/11/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
今天
4
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
5
0
java内存模型

前言 Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模...

ls_cherish
今天
4
0
友元函数强制转换

友元函数强制转换 p522

天王盖地虎626
昨天
5
0
js中实现页面跳转(返回前一页、后一页)

本文转载于:专业的前端网站➸js中实现页面跳转(返回前一页、后一页) 一:JS 重载页面,本地刷新,返回上一页 复制代码代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a h...

前端老手
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部