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

一、项目简介

该项目通过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。

f23ab634cef2f5feaadc909b458353f2.png

二、代码示例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@}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值