zookeeper java例子

zookeeper官方网站

从官房网站将zookeeper下载下来解压

然后打开zookeeper的zoo.cfg配置文件

1
2
3
4
5
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper
clientPort=2181 #zookeeper开放端口

然后启动zookeeper

进入bin文件夹下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@master bin]# ll
总用量 36
-rwxr-xr-x. 1 dmdba dinstall 232 3月 23 2017 README.txt
-rwxr-xr-x. 1 dmdba dinstall 1937 3月 23 2017 zkCleanup.sh
-rwxr-xr-x. 1 dmdba dinstall 1056 3月 23 2017 zkCli.cmd
-rwxr-xr-x. 1 dmdba dinstall 1534 3月 23 2017 zkCli.sh
-rwxr-xr-x. 1 dmdba dinstall 1628 3月 23 2017 zkEnv.cmd
-rwxr-xr-x. 1 dmdba dinstall 2696 3月 23 2017 zkEnv.sh
-rwxr-xr-x. 1 dmdba dinstall 1089 3月 23 2017 zkServer.cmd
-rwxr-xr-x. 1 dmdba dinstall 6773 3月 23 2017 zkServer.sh
[root@master bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@master bin]# lsof -i:2181
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 11660 root 25u IPv6 927786 0t0 TCP *:eforward (LISTEN)
[root@master bin]# ./zkServer.sh stop
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
[root@master bin]# lsof -i:2181
[root@master bin]#

./zkServer.sh start命令启动zookeeper

zookeeper启动默认端口是2181

zookeeper指定配置文件启动

zookeeper的配置文件放在conf文件夹下

可以建立多个zookeeper配置文件

1
2
3
4
5
6
7
8
[root@master bin]# ./zkServer.sh start zoo1.cfg 
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo1.cfg
Starting zookeeper ... STARTED
[root@master bin]# lsof -i:2181
[root@master bin]# lsof -i:2182
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 12055 root 25u IPv6 939408 0t0 TCP *:cgn-stat (LISTEN)

zoo1.cfg文件指定的clientPort为2182

使用”lsof -i:端口”命令测试如果有信息显示说明可以了

java example

zookeeper java官方文档

https://zookeeper.apache.org/doc/r3.4.10/javaExample.pdf java官方教程可以把版本号修改3.4.10是我的zookeeper版本号

下面新建一个maven项目

首先添加maven pom依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
     <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.10</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
创建zookeeper
1
2
3
4
5
6
7
8
9
10
public static ZooKeeper createZookeeper(String conectStr, int sessionTime) {
try {
ZooKeeper zoo = new ZooKeeper(conectStr, sessionTime, null);
return zoo;
} catch (Exception e) {
e.printStackTrace();
System.out.println("错误");
return null;
}
}
获得子节点
1
2
3
4
5
6
7
8
9
10
11
12
public static void childPath(String node) {
try {
ZooKeeper zoo = createZookeeper("localhost:2181", 2000);
List<String> lists = zoo.getChildren(node, false);
for (String path : lists) {
System.out.println(path);
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("错误");
}
}
本文结束 3Q YOU

本文标题:zookeeper java例子

文章作者:廖振钦

发布时间:2018年07月05日 - 19:07

最后更新:2018年07月13日 - 16:07

原始链接:http://qincloud.github.io/hexot/2018/07/05/zookeeper-java例子/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。