08. Zookeeper JavaAPI-环境搭建
Zookeeper 提供了Java 访问的API, 但是笔者API 并不是太友好, 使用起来并不方便. 笔者认为, 倘若在生产环境下需要直接操作Zookeeper, 那么笔者建议对常用API 做二次封装.
1. Java 开发环境搭建
新建一maven 项目, 引入依赖
1.1 pom 依赖
引入zookeeper 核心依赖, 顺便引入单元测试和日志依赖.
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.6</version>
</dependency>
</dependencies>
1.2 日志输出
Zookeeper 默认采用log4j 输出日志, 因此在类加载路径下添加log4j.properties 配置文件
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
2. 创建Zookeeper 连接
Java 对Zookeeper 的操作全部封装在Zookeeper 对象中, 需要先创建Zookeeper对象, 与Zookeeper服务建立连接. 获取到Zookeeper 连接对象之后, 就可以对zNode 进行操作了.
public class TestAPI {
// zookeeper 地址, 多个地址以逗号割开
private static String zkServer = "127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183";
// 会话超时时间
private static int sessionTimeout = 3000;
// zookeeper 客户端连接
private static ZooKeeper zooKeeper;
@Test
public void init() throws Exception{
zooKeeper = new ZooKeeper(zkServer, sessionTimeout, watchedEvent ->{ });
System.out.println("******************* init start ***********************");
System.out.println("state:" + zooKeeper.getState());
System.out.println("sessionPwd:" + zooKeeper.getSessionPasswd());
System.out.println("sessionId:" + zooKeeper.getSessionId());
System.out.println("timeout:" + zooKeeper.getSessionTimeout());
System.out.println("******************* init end ***********************");
}
}
还没有评论,来说两句吧...