前言:
https://gitee.com/suyujie/zookeeper-test.git
最近在找工作,之前在使用zookeeper,上手太容易了,所以觉得没啥特别东西,但后来面试的时候,面试官问了zookeeper的很多东西,才发现这东西不是像我们使用的时候那样简单,所以我花了时间研究了一下,并写了这篇博客,上面是我研究zookeeperAPI的一个小demo,代码小细节没有去琢磨,但可以供各位参考,希望可以帮助各位学到东西,也希望大牛看到了可以提出建议供相互学习,期间出现的问题,我会在本博客中写出来
一、zookeeper中随处可见的@InterfaceAudience标签
zookeeper中很多代码中都包含了@InterfaceAudience.Public的标签,我稍微看了一下,这个标签的定义是在audience-annotations的包里定义的,同时@IntefaceAudience还有其他的值,我百度了一下,这个标签是用来标识这个类的作用域的,整理如下:
@InterfaceAudience.Public:作用域在所有的工程和应用(Intended for use by any project or application)
@InterfaceAudience.LimitedPrivate:作用域在本项目的衍生外围项目(Intended only for the project(s) specified in the annotation.For example, "Hadoop Common", "HDFS", "MapReduce", "Zookeeper", "HBase")
@InterfaceAudience.Private:作用域在本项目中(Intended for use only within a given project)
二、zookeeper开发中出现的问题
具体的代码我已经放到了码云上了
我出现的问题主要在连接zookeeper上,网上的建议是关闭防火墙,但这个方法太过于简单粗暴,实际肯定是不可行的,所以要开放zookeeper的端口号,
网上找到的: iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT
我平时习惯使用的:iptables -A INPUT -p tcp --dport 2181 -j ACCEPT
三、常量简单罗列
1、节点创建模式,总共有以下四类
CreateMode.PERSISTENT:持久,当client端关闭,这个节点将不会自动删除(The znode will not be automatically deleted upon client's disconnect)
CreateMode.PERSISTENT_SEQUENTAL:持久队列,当client端关闭,这个节点将不会自动删除,它的名称后面将跟着一个单调增加的数字(The znode will not be automatically deleted upon client's disconnect. and its name will be appended with a monotonically increasing number)
CreateMode.EPHEMERAL:临时,当client端关闭,这个节点将自动删除(The znode will be deleted upon client's disconnect)
CreateMode.EPHEMERAL_SEQUENTAL:临时队列,当client端关闭,这个节点将自动删除,它的名称后面将跟着一个单调增加的数字(The znode will be deleted upon client's disconnect. and its name will be appended with a monotonically increasing number)
待续。。。
更多参考:https://www.w3cschool.cn/zookeeper/zookeeper_overview.html
第一篇:https://my.oschina.net/u/2430231/blog/3030463
上一篇:https://my.oschina.net/u/2430231/blog/3030463
下一篇:本篇博客为zookeeper相关的最后一篇博客