联系我们 - 广告服务
您的当前位置:官网首页 > 资讯 > 热评 >

ZooKeeper实现生产

来源: 编辑: 时间:2019-08-28
导读: import java.util.concurrent.countdownlatch;import org.apache.zookeeper.*;import ......

import java.util.concurrent.countdownlatch;

import org.apache.zookeeper.*;

import org.apache.zookeeper.data.stat;

import org.slf4j.logger;

import org.slf4j.loggerfactory;

import org.slf4j.profiler.profiler;

 

/**

 * 为 zookeeper测试代码创建一个基类,封装建立连接的过程

 *

 * @author code story

 * @date 2019/8/16

 */

public class zookeeperbase implements watcher {

 /** 日志,不使用 @slf4j ,是要使用子类的log */

 logger log = null;

 

 /** 等待连接建立成功的信号 */

 private countdownlatch connectedsemaphore = new countdownlatch;

 /** zookeeper 客户端 */

 private zookeeper zookeeper = null;

 /** 避免重复根节点 */

 static integer rootnodeinitial = integer.valueof;

 

 /** 构造函数 */

 public zookeeperbase throws ioexception {

  log = loggerfactory.getlogger);

 

  profiler profiler = new profiler.getname + " 连接到zookeeper");

  profiler.start;

  zookeeper = new zookeeper;

  try {

  profiler.start;

  connectedsemaphore.await;

  } catch {

  log.error;

  }

  profiler.stop;

  profiler.setlogger;

  profiler.log;

 }

 

 /**

  * 创建测试需要的根节点

  *

  * @param rootnodename

  * @return

  */

 public string createrootnode {

  synchronized {

  // 创建 tableserial 的znode

  try {

  stat existsstat = getzookeeper.exists;

  if {

  rootnodename = getzookeeper.create;

  }

  } catch {

  log.error;

  } catch {

  log.error;

  }

  }

  return rootnodename;

 }

 

 /** 读取zookeeper对象,供子类调用 */

 protected zookeeper getzookeeper {

  return zookeeper;

 }

 

 @override

 final public void process {

  if )) {

  // 连接状态发生变化

  if )) {

  // 连接建立成功

   connectedsemaphore.countdown;

  }

  } else if )) {

  processnodecreated;

  } else if )) {

  processnodedeleted;

  } else if )) {

  processnodedatachanged;

  } else if )) {

  processnodechildrenchanged;

  }

 }

 

 /**

  * 处理事件: nodecreated

  *

  * @param event

  */

 protected void processnodecreated {}

 

 /**

  * 处理事件: nodedeleted

  *

  * @param event

  */

 protected void processnodedeleted {}

 

 /**

  * 处理事件: nodedatachanged

  *

  * @param event

  */

 protected void processnodedatachanged {}

 

 /**

  * 处理事件: nodechildrenchanged

  *

  * @param event

  */

 protected void processnodechildrenchanged {}

}

责任编辑:

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

网友评论:

在“\templets\demo\comments.htm”原来的内容全部删除,插入第三方评论代码,如果不需要评论功能,删除comments.html里面的内容即可
推荐使用友言、多说、畅言(需备案后使用)等社会化评论插件

Copyright © 2018 太阳城娱乐场太阳城娱乐场-新太阳城 All Rights Reserved Power by DedeCms
本站所有资讯来源于网络 如有侵权请联系QQ:9490489
Top