08. Zookeeper JavaAPI-环境搭建

太过爱你忘了你带给我的痛 2022-03-18 02:26 339阅读 0赞

Zookeeper 提供了Java 访问的API, 但是笔者API 并不是太友好, 使用起来并不方便. 笔者认为, 倘若在生产环境下需要直接操作Zookeeper, 那么笔者建议对常用API 做二次封装.

1. Java 开发环境搭建

新建一maven 项目, 引入依赖

1.1 pom 依赖

引入zookeeper 核心依赖, 顺便引入单元测试和日志依赖.

  1. <dependencies>
  2. <dependency>
  3. <groupId>junit</groupId>
  4. <artifactId>junit</artifactId>
  5. <version>4.12</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>log4j</groupId>
  9. <artifactId>log4j</artifactId>
  10. <version>1.2.17</version>
  11. </dependency>
  12. <dependency>
  13. <groupId>org.apache.zookeeper</groupId>
  14. <artifactId>zookeeper</artifactId>
  15. <version>3.4.6</version>
  16. </dependency>
  17. </dependencies>

1.2 日志输出

Zookeeper 默认采用log4j 输出日志, 因此在类加载路径下添加log4j.properties 配置文件

  1. log4j.rootLogger=INFO, stdout
  2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  3. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
  4. log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
  5. log4j.appender.logfile=org.apache.log4j.FileAppender
  6. log4j.appender.logfile.File=target/spring.log
  7. log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
  8. log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

2. 创建Zookeeper 连接

Java 对Zookeeper 的操作全部封装在Zookeeper 对象中, 需要先创建Zookeeper对象, 与Zookeeper服务建立连接. 获取到Zookeeper 连接对象之后, 就可以对zNode 进行操作了.

  1. public class TestAPI {
  2. // zookeeper 地址, 多个地址以逗号割开
  3. private static String zkServer = "127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183";
  4. // 会话超时时间
  5. private static int sessionTimeout = 3000;
  6. // zookeeper 客户端连接
  7. private static ZooKeeper zooKeeper;
  8. @Test
  9. public void init() throws Exception{
  10. zooKeeper = new ZooKeeper(zkServer, sessionTimeout, watchedEvent ->{ });
  11. System.out.println("******************* init start ***********************");
  12. System.out.println("state:" + zooKeeper.getState());
  13. System.out.println("sessionPwd:" + zooKeeper.getSessionPasswd());
  14. System.out.println("sessionId:" + zooKeeper.getSessionId());
  15. System.out.println("timeout:" + zooKeeper.getSessionTimeout());
  16. System.out.println("******************* init end ***********************");
  17. }
  18. }

发表评论

表情:
评论列表 (有 0 条评论,339人围观)

还没有评论,来说两句吧...

相关阅读