本教程使用的 IDE 为 IntelliJ IDEA,创建一个 maven 工程,命å��为 zookeeper-demo,并且引入如下ä¾�赖,å�¯ä»¥è‡ªè¡Œåœ¨mavenä¸å¤®ä»“库选择å�ˆé€‚的版本,介ç»�原生 API å’Œ Curator 两ç§�æ–¹å¼�。
IntelliJ IDEA 相关介�:
maven 工程目录结构:
一�客户端的 zookeeper 原生 API
使用 zookeeper 原生 API,连接上一教程æ�建的三å�°æœ�务组æˆ�çš„é›†ç¾¤ï¼Œå› ä¸ºè¿žæŽ¥éœ€è¦�时间,用 countDownLatch 阻塞,ç‰å¾…连接æˆ�功,控制å�°è¾“出连接状æ€�ï¼�
实例
控制�输出 connected 显示连接�功!
简å�•ç¤ºä¾‹æ·»åŠ èŠ‚ç‚¹ API:
zooKeeper.create("/runoob","0".getBytes(),ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);
æ��示:更多命令功能使用请å�‚考本教程å�Žé�¢ç« 节。
�时在�务端终端执行命令,显示设置�功。
二�客户端的curator连接
Curator 是 Netflix å…¬å�¸å¼€æº�的一套 zookeeper 客户端框架,解决了很多 Zookeeper 客户端é�žå¸¸åº•层的细节开å�‘工作,包括连接é‡�连ã€�å��å¤�注册 Watcher å’Œ NodeExistsException 异常ç‰ã€‚
Curator 包å�«äº†å‡ 个包:
- curator-framework:对 zookeeper 的底层 api 的一些�装。
- curator-client:æ��供一些客户端的æ“�作,例如é‡�试ç–ç•¥ç‰ã€‚
- curator-recipes:å°�装了一些高级特性,如:Cache 事件监å�¬ã€�选举ã€�分布å¼�é”�ã€�分布å¼�计数器ã€�分布å¼� Barrier ç‰ã€‚
简�使用示例:
实例
上一æ¥è®¾ç½®äº† /runoob 节点值,所以控制å�°è¾“出。
curator 相关�考链接: http://curator.apache.org/。
demo æº�ç �打包文件: