- 浏览: 74635 次
- 性别:
- 来自: 富安
最新评论
-
simpledev:
...
10步让你成为更优秀的程序员 -
bavnnsym:
像三楼说的那样,,是可以的,,我之前也碰到这个问题,,也是在d ...
IE6层不能遮挡住下拉框问题解决 -
suko:
yukaizhao 写道一句话的事情,就是创建一个和层一样大小 ...
IE6层不能遮挡住下拉框问题解决 -
yukaizhao:
一句话的事情,就是创建一个和层一样大小,一样位置的iframe ...
IE6层不能遮挡住下拉框问题解决 -
kaipingk:
andyyehoo 写道可以参考一下Struts2的日历控件的 ...
IE6层不能遮挡住下拉框问题解决
时间 2014-03-22 22:42:48 CSDN博客
原文 http://blog.csdn.net/fengspg/article/details/21805075
主题 ZooKeeper Java
上篇简单的介绍了单点部署ZooKeeper及节点管理。
这里介绍下如何通过java客户端进行各个节点的管理。
具体就不一一介绍,相信从代码的注释中就可以看明白
首先创建一个zookeeper的基础类,里面包含了基本的节点管理方法,如下:
package com.zktest.newtest;
import java.io.IOException;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.Watcher.Event.KeeperState;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.data.Stat;
public class BaseZookeeper implements Watcher
{
public ZooKeeper zooKeeper;
private static final int SESSION_TIME_OUT = 2000;
private CountDownLatch countDownLatch = new CountDownLatch(1);
/**
* 连接zookeeper
*
* @param host
* @throws IOException
* @throws InterruptedException
*/
public void connectZookeeper(String host) throws IOException,
InterruptedException
{
zooKeeper = new ZooKeeper(host, SESSION_TIME_OUT, this);
countDownLatch.await();
System.out.println("zookeeper connect ok");
}
/**
* 实现watcher的接口方法,当连接zookeeper成功后,zookeeper会通过此方法通知watcher<br>
* 此处为如果接受到连接成功的event,则countDown,让当前线程继续其他事情。
*/
@Override
public void process(WatchedEvent event)
{
if (event.getState() == KeeperState.SyncConnected)
{
System.out.println("watcher received event");
countDownLatch.countDown();
}
}
/**
* 根据路径创建节点,并且设置节点数据
* @param path
* @param data
* @return
* @throws KeeperException
* @throws InterruptedException
*/
public String createNode(String path, byte[] data) throws KeeperException,
InterruptedException
{
return this.zooKeeper.create(path, data, Ids.OPEN_ACL_UNSAFE,
CreateMode.PERSISTENT);
}
/**
* 根据路径获取所有孩子节点
*
* @param path
* @return
* @throws KeeperException
* @throws InterruptedException
*/
public List<String> getChildren(String path) throws KeeperException,
InterruptedException
{
return this.zooKeeper.getChildren(path, false);
}
public Stat setData(String path, byte [] data, int version) throws KeeperException, InterruptedException
{
return this.zooKeeper.setData(path, data, version);
}
/**
* 根据路径获取节点数据
*
* @param path
* @return
* @throws KeeperException
* @throws InterruptedException
*/
public byte[] getData(String path) throws KeeperException,
InterruptedException
{
return this.zooKeeper.getData(path, false, null);
}
/**
* 删除节点
*
* @param path
* @param version
* @throws InterruptedException
* @throws KeeperException
*/
public void deletNode(String path, int version)
throws InterruptedException, KeeperException
{
this.zooKeeper.delete(path, version);
}
/**
* 关闭zookeeper连接
*
* @throws InterruptedException
*/
public void closeConnect() throws InterruptedException
{
if (null != zooKeeper)
{
zooKeeper.close();
}
}
}
创建客户端进行测试,代码如下:
package com.spg.zktest.newtest;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import org.apache.zookeeper.KeeperException;
public class Client
{
/**
* @param args
* @throws InterruptedException
* @throws IOException
* @throws KeeperException
*/
public static void main(String[] args) throws IOException, InterruptedException, KeeperException
{
BaseZookeeper baseZookeeper = new BaseZookeeper();
String host = "192.168.183.128:2181";
// 连接zookeeper
baseZookeeper.connectZookeeper(host);
System.out.println("--------connect zookeeper ok-----------");
// 创建节点
byte [] data = {1, 2, 3, 4, 5};
String result = baseZookeeper.createNode("/test", data);
System.out.println(result);
System.out.println("--------create node ok-----------");
// 获取某路径下所有节点
List<String> children = baseZookeeper.getChildren("/");
for (String child : children)
{
System.out.println(child);
}
System.out.println("--------get children ok-----------");
// 获取节点数据
byte [] nodeData = baseZookeeper.getData("/test");
System.out.println(Arrays.toString(nodeData));
System.out.println("--------get node data ok-----------");
// 更新节点数据
data = "test data".getBytes();
baseZookeeper.setData("/test", data, 0);
System.out.println("--------set node data ok-----------");
nodeData = baseZookeeper.getData("/test");
System.out.println(Arrays.toString(nodeData));
System.out.println("--------get node new data ok-----------");
baseZookeeper.closeConnect();
System.out.println("--------close zookeeper ok-----------");
}
}
从命令行中看操作后的结果,如下:
1:根目录下节点
2:查看test节点信息
OK,测试结果到此结束。
发表评论
-
Zookeeper+SolrCloud+Tomcat搭建分布式搜索应用
2016-03-10 15:39 1034一.简介 SolrCloud是Solr4.0版本以后基于Sol ... -
Solr 4.7.0部署及java调用solr
2016-02-25 15:19 531参考了以下2个网站 1.Solr在tomcat中的部署 htt ... -
HTTP请求如何带参
2015-11-10 22:21 755HTTP请求如何带参 转载自:http://www.cnbl ... -
MyBatis 配置sql语句输出
2015-09-29 15:37 13171.首先将ibatis log4j运行级别调到DEBUG可以在 ... -
自定义alert提示框
2015-09-23 16:48 661js和css写的自定义弹出框,可以自己修改颜色和布局,使得弹出 ... -
js判断手机系统类型
2015-09-21 13:52 601function checkOSType(){ ... -
Java生成二维码,扫描后跳转到指定的网站
2015-09-16 22:25 9644本例我是应用google的二维码工具包来做的,附近提供jar包 ... -
net.sf.json.JSONObject 依赖的包
2015-03-01 20:55 6434依赖的包如下图: 主包为json-lib-2.3-jdk13. ... -
通过阻塞队列实现文件关键字检索功能
2015-01-26 13:57 658package com.queue; import ... -
Tomcat热部署
2014-11-25 09:50 526\conf\Catalina\localhost目录下新建xm ... -
合并多个excel文件到一个文件
2014-11-16 19:41 1258package com.ben.utils; imp ... -
Java实现FTP上传和下载
2014-08-14 15:04 874import java.io.ByteArrayInput ... -
使用正则表达式替换数字
2014-06-19 16:38 1218public static void main(Strin ... -
Java Webservice例子
2014-06-17 12:38 5191.webservice服务端代码,发布一个webservic ... -
Java基础知识汇总
2014-05-08 08:28 592一、关于main方法 1.main方法被定义为private, ... -
查看JDK源码
2014-05-07 22:54 512查看JDK源码: step1:打开MyEclipse选择Wi ... -
Java中取两个集合的并集、交集和差集
2014-04-23 16:58 112671.并集 也叫合集,即把两个集合的所有元素加在一起。 pu ... -
JXPathContext支持迷糊匹配
2014-03-12 15:40 1077看完例子就会了 public ... -
统计英文单词的数量
2014-03-12 10:18 750使用正则表达式来统计一段文字中的英文单词的数量 publi ... -
使用序列化方法实现list集合的深拷贝
2014-03-05 14:28 3006对于可序列化(实现Serializable接口)的对象,封装它 ...
相关推荐
--第05章选举模式和ZooKeeper的集群安装---第06章使用ZooKeeper原生JavaAPI进行客户端开发---第07章ApacheCurator客户端的使用---第08章Dubbo入门到重构服务---第09章分布式锁---第10章课程总结---project.zip---zk_...
简单、高效的Zookeeper Java客户端。 让Zookeeper API 使用起来更简单 非常方便订阅各种事件并自动重新绑定事件(会话建立、节点修改、节点删除、子节点变更等) session过期自动重连、机制 快速入门 下面部分...
**Zookeeper API(Java)入门详解** Zookeeper是一款分布式协调服务,由Apache基金会开发,它为分布式应用提供一致性服务,包括命名服务、配置管理、集群同步、分布式锁等。在Java开发中,我们通常会使用Zookeeper...
### Zookeeper 学习入门知识点 #### 一、Zookeeper 概述与核心价值 - **定义**: Zookeeper 是一个高度可靠的关键值存储系统,它主要用于解决分布式环境中的一致性问题,例如配置管理、命名服务、分布式同步以及...
在这个"solr入门java工程"中,我们将探讨如何使用Java客户端与华为FusionInsight SolrTest进行交互,以及如何在SolrCloud模式下进行分布式搜索。 首先,让我们了解Solr的基本概念。Solr的核心功能是提供高效的全文...
本篇文章将专注于ZooKeeper的客户端——Curator,这是一个由Apache提供的Java库,旨在简化与ZooKeeper的交互。 Curator客户端是Apache Curator框架的一部分,该框架为开发人员提供了一系列高级API和工具,用于处理...
Dubbo是阿里巴巴开源的一款高性能、轻量级的Java分布式服务框架,而Zookeeper则是一个分布式服务协调系统,常用于服务注册与发现。在这个实例中,我们将了解如何设置和运行一个简单的Dubbo应用,利用Zookeeper作为...
### Java Netty 入门教程知识点详解 #### 1. Netty 概览 ##### 1.1 Netty 是什么? Netty 是一款基于 Java 的高性能网络应用框架,支持多种协议,包括但不限于 HTTP、FTP、SMTP 等,并且特别擅长处理 TCP 和 UDP ...
**Zookeeper入门练习Demo** Zookeeper是一个分布式协调服务,由Apache Hadoop项目开发,广泛应用于分布式计算、配置管理、命名服务、分布式锁等场景。这个"Zookeeper入门练习Demo"旨在帮助初学者快速掌握Zookeeper...
Zookeeper-Accessor 自述文件版本 0.1.0 一个zookeeper服务的通用访问器是用java实现的。 Zookeeper-Accessor 由以下组件组成: 发布:使用路径/root(在配置文件中)/service.id/version/sharding/endpoint:value ...
在Java中,可以使用Zookeeper的Java客户端ZKClient或Curator框架来操作Zookeeper。这些库提供了更友好的API,简化了与Zookeeper的交互过程,例如创建会话、注册Watcher、操作Znode等。 总结,Zookeeper作为一个强大...
2. ** watches**: Zookeeper支持监视机制,客户端可以对某个节点设置监视器,当节点状态发生变化时,Zookeeper会向客户端发送通知。 3. **选举算法**: Zookeeper采用Paxos或ZAB协议实现集群的领导者选举,保证了...
Dubbo则是构建在Zookeeper之上,提供服务治理能力的框架。它允许服务提供方暴露服务,同时服务消费方调用这些服务。Dubbo的核心特性包括:服务注册与发现、负载均衡、容错机制、服务监控等。 在本入门案例中,...
尚硅谷大数据技术之Zookeeper1是关于Apache Zookeeper入门教程的一部分,旨在介绍Zookeeper的基本概念、特点、数据结构、应用场景以及如何在本地模式下进行安装和操作。Zookeeper是一个开源的分布式协调服务,它在...
- **分布式锁**:通过ZooKeeper可以实现不同节点间的互斥访问,从而避免并发操作导致的数据不一致问题。 - **集群管理**:ZooKeeper可以帮助跟踪集群成员状态,当有新节点加入或老节点离开时,可以及时通知其他节点...
通过学习《Zookeeper从入门到精通课程资源》,你可以深入了解Zookeeper的工作原理,掌握其核心功能,以及如何在分布式系统中有效利用Zookeeper解决实际问题。配合提供的"zookeeper视频汇总.txt",系统学习将更加高效...
Zookeeper 提供了丰富的Java和C语言API,包括创建、删除、设置和获取Znode,注册和触发Watcher,以及获取Znode的ACL(访问控制列表)等操作。 **六、Zookeeper的部署与运维** 1. **集群配置**: 配置文件`zoo.cfg`...
### Zookeeper 入门知识点详解 #### 一、Zookeeper 是什么? Zookeeper是一个用于分布式应用协调服务的软件。它可以维护配置信息、提供命名服务、实现分布式同步,并且支持组服务功能。简单来说,Zookeeper就是一...
10. **安全性**:探讨ZooKeeper的安全特性,如ACL(访问控制列表)配置,以及如何保护ZooKeeper集群免受未授权访问。 这个PDF文档是初学者理解并掌握ZooKeeper的绝佳资源,它将带你从基础概念出发,逐步深入到实际...
Zookeeper笔记 Zookeeper是一个为分布式应用提供一致性服务的软件,提供配置服务、...这篇笔记提供了 Zookeeper 的基本概念、运行原理、使用方法和应用场景等信息,对于初学者来说可以很快入门 Zookeeper,上手实战。