云南快三平台app下载—官方网址22270.COM代码广告位
黄飞鸿的gravatar头像
黄飞鸿2017-06-29 20:31:50

Ͽͼٷַ22270.COM_Java zookeeper开发实例

1、安装zookeeper

 下载zk http://archive.cloudera.com/cdh5/cdh/5/ 

 配置文件

tickTime=2000
initLimit=10
syncLimit=5
# zk数据保存目录 
dataDir=/usr/local/zookeeper/data
clientPort=2181

 启动:

bin/zkServer.sh start 

客户端命令行链接:

bin/zkCli.sh

2、拷贝zookeeper下的jar包,到应用程序,并使用maven引入相关jar包

<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>slf4j-api</artifactId>
	<version>1.7.25</version>
</dependency>


<dependency>
	<groupId>org.apache.zookeeper</groupId>
	<artifactId>zookeeper</artifactId>
	<version>3.4.5-cdh5.10.0</version>
	<scope>system</scope>
	<systemPath>${project.basedir}/lib/zookeeper-3.4.5-cdh5.10.0.jar</systemPath>
</dependency>

  java 代码

	
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.Watcher.Event.EventType;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class ZookeeperContext {

	protected static Logger logger = LoggerFactory.getLogger("zk");
	
	public final int SESSION_TIME_OUT = 2000;
	public ZooKeeper zk;
	/**
	 * 判断zk的链接链接状态
	 * */
	public boolean isConnected(){
		return zk.getState() == ZooKeeper.States.CONNECTED;
	}
	
	/**
	 * 创建zk链接
	 * **/
	public ZookeeperContext(String connectString) {
		try {
                    /**
			 * connectString 链接zookeeper的Ip和端口,多个用逗号隔开例如:
			 * 10.0.0.104:2181,10.0.0.105:2181 sessionTimeout
			 * 客户端和zookeeper链接断开后,数据云南快三平台app下载—官方网址22270.COM长保存的时间 watcher 监控回调,服务器数据修改会回调
			 */
			zk = new ZooKeeper(connectString, SESSION_TIME_OUT, new ZookeeperWatcher());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * zk监听,如果服务器端有什么变化到这里接收
	 * 并继续添加监听
	 * */
	public class ZookeeperWatcher implements Watcher {
		@Override
		public void process(WatchedEvent event) {
			try {
				
				if(null != event.getPath()){
					System.out.println( event );
					if(event.getType() == EventType.NodeChildrenChanged){
						zk.getChildren(event.getPath(), true) ; 
					}else{
						zk.getData(event.getPath(), true, null) ; 
					}
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}
	
	/**
	 * 在zk创建数据
	 * */
	public void setData(String path,byte[]data , CreateMode createMode){
		try {
			if(zk.exists(path, false) == null){
				zk.create(path, data, Ids.OPEN_ACL_UNSAFE, createMode) ;
			}else{
				zk.setData(path,data,-1);
			}
			zk.getChildren(path, true) ;
		} catch (Exception e) {
			logger.error("setData", e );
		}
	}
	
	public static void main(String[] args)throws Exception {
		ZookeeperContext context = new ZookeeperContext("10.0.0.104:2181"); 
		
		while (!context.isConnected()) {
			Thread.sleep(3000);
		}
		context.setData("/root", "1".getBytes(),CreateMode.PERSISTENT);
		context.setData("/root/hpgary", "gg".getBytes() , CreateMode.EPHEMERAL);
		System.err.println("eee");
		System.in.read() ;
	}

}

 

 

 

 

项目运行截图:

Ͽͼٷַ22270.COM_Java zookeeper开发实例

Ͽͼٷַ22270.COM_Java zookeeper开发实例

云南快三平台app下载—官方网址22270.COM代码广告位

打赏

文件名:access.zip,文件大小:1237.514K下载
云南快三平台app下载—官方网址22270.COM代码云南快三平台app下载—官方网址22270.COM近下载分享源代码列表云南快三平台app下载—官方网址22270.COM近下载
gmhaizn LV102018年3月30日
月亮月亮星星星星
liangzai123 LV182018年3月21日
太阳星星星星
kildee LV112017年7月6日
月亮月亮星星星星星星
云南快三平台app下载—官方网址22270.COM代码云南快三平台app下载—官方网址22270.COM近浏览分享源代码列表云南快三平台app下载—官方网址22270.COM近浏览
2506710906 LV512月5日
月亮星星
zackery LV411月10日
月亮
小二上代码 LV710月28日
月亮星星星星星星
adminroot777 LV89月29日
月亮月亮
十二画8月15日
暂无贡献等级
siyicode7月23日
暂无贡献等级
80730176 LV37月16日
星星星星星星
EricLan LV46月28日
月亮
firstNull LV46月23日
月亮
南风你好吗 LV55月10日
月亮星星
云南快三平台app下载—官方网址22270.COM代码广告位
顶部客服微信二维码底部
>扫描二维码关注云南快三平台app下载—官方网址22270.COM代码为好友扫描二维码关注云南快三平台app下载—官方网址22270.COM代码为好友