首页  |  知识库  |  资源下载  |  在线工具  |  A-Z  •  JAR  •  名词查         

实现zookeeper集群节点管理及Master选举完整示例java项目下载(含依赖jar包)

标签:zookeeper代码demo,zookeeper节点选举,zk客户端依赖包,zookeeper-3.4.0-test.jar     发布时间:2019-04-07   

一、项目简介

该项目通过zookeeper三个节点Node服务客户端代码,实现zookeeper集群管理与Master选举功能示例,项目结构如下图所示,其中依赖包包含:log4j-1.2.14.jar、slf4j-api-1.7.2.jar、slf4j-log4j12-1.7.2.jar、zookeeper-3.4.0-test.jar、zookeeper-3.4.6.jar。

实现zookeeper集群节点管理及Master选举完整示例java项目下载(含依赖jar包)

二、代码示例

package com.xwood.zookeeper;@b@@b@import org.apache.zookeeper.CreateMode;@b@import org.apache.zookeeper.KeeperException;@b@import org.apache.zookeeper.WatchedEvent;@b@import org.apache.zookeeper.Watcher;@b@import org.apache.zookeeper.Watcher.Event.EventType;@b@import org.apache.zookeeper.ZooDefs.Ids;@b@import org.apache.zookeeper.ZooKeeper;@b@ @b@public class Node1 implements Watcher{@b@	@b@	ZooKeeper zk;@b@	String hostPort;@b@	String znode;@b@	@b@	public Node1(String hostPort,String znode) throws Throwable{@b@		this.hostPort = hostPort;@b@		this.znode = znode;@b@		@b@		zk = new ZooKeeper(hostPort, 3000, this);@b@		try {@b@			//每个客户端都创建同一个节点,如果创建成功,则该客户端是master@b@			zk.create(znode, "node1".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);@b@			System.out.println("master节点是:node1");@b@		} catch (KeeperException.NodeExistsException e) {@b@			//如果抛出节点存在的异常,则master已经存在,在该节点上添加watcher@b@			System.out.println("master节点是:" + new String(zk.getData(znode, false, null)));@b@			zk.exists(znode, true);@b@		}@b@		@b@	}@b@ @b@	public void process(WatchedEvent event) {@b@			try {@b@				@b@				if (event.getType() == EventType.NodeDeleted) {@b@					try {@b@						zk.create(znode, "node1".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);@b@						System.out.println("master节点是:node1");@b@					} catch (KeeperException.NodeExistsException e) {@b@						System.out.println("master节点是:" + new String(zk.getData(znode, false, null)));@b@						zk.exists(znode, true);@b@					}@b@				}@b@				@b@			} catch (KeeperException e) {@b@				e.printStackTrace();@b@			} catch (InterruptedException e) {@b@				e.printStackTrace();@b@			}@b@		@b@	}@b@ @b@	public static void main(String[] args) throws Throwable {@b@		new Node1("192.168.1.102:2181", "/test");@b@		@b@		System.in.read();@b@	}@b@}
  • 云盘下载:
  • [提取码:tnb6]
  • 本地下载:
  • ◆ 相关内容