实验环境:

os-platform: windows7 x64
jdk: 1.7

参考文档:

http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/
http://zookeeper.apache.org/doc/r3.4.6/
http://blog.csdn.net/rengq126/article/details/7393227

1.下载zookeeper,这里选用stable版本的3.4.6

下载地址:http://apache.fayea.com/zookeeper/zookeeper-3.4.6/

2.配置安装zookeeper

下载完成后,将zookeeper-3.4.6.tar.gz解压到指定目录(如,D:/zookeeper-3.4.6)。
重命名conf/zoo_sample.cfg为zoo.cfg,其中关键配置请至少保留以下项: tickTime=2000
dataDir=D:/zookeeper-3.4.6/data
clientPort=2181 配置项分别为:
心跳频率,每2000ms发送一次心跳包
数据路径,可用于数据落地,确保zookeeper宕机后数据不丢失(一般用来保障那些永久性节点)
服务端口,即客户端的连接端口,zookeeper用来监听客户端的请求

3.启动和关闭,以及客户端的连接

启动方式:
  bin/zkServer.cmd 或 bin/zkServer.sh start 关闭方式:
  遗憾的是windows只能手动Ctrl+C关掉server,而linux则可以通过bin/zkServer.sh stop完成关闭操作 客户端连接:
  bin/zkCli.cmd 或者 bin/zkCli.cmd -server 127.0.0.1:2181

4.zookeeper api using demo(可用来了解watcher和zk的基础操作)

package org.kongdl.zookeeper.demo;

import java.io.*;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper; public class ZookeeperDemo { private static final int SESSION_TIMEOUT = 3000; public static void main(String[] args) {
ZookeeperDemo demo = new ZookeeperDemo();
try {
demo.zkOperations();
} catch(Exception e) {
e.printStackTrace();
}
} private void zkOperations() throws IOException, InterruptedException, KeeperException{
ZooKeeper zk = createZookeeperInstance(); System.out.println("\n1. 创建 ZooKeeper 节点 (znode : zoo2, "
+ "数据: myData2 ,"
+ "权限: OPEN_ACL_UNSAFE ,"
+ "节点类型: Persistent");
zk.create("/zoo2", "mydata".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); System.out.println("\n2. 查看是否创建成功: ");
System.out.println(new String(zk.getData("/zoo2", true, null))); System.out.println("\n3. 修改节点数据 ");
zk.setData("/zoo2", "lichmama".getBytes(), -1); System.out.println("\n4. 查看是否修改成功: ");
System.out.println(new String(zk.getData("/zoo2", true, null))); System.out.println("\n5. 删除节点 ");
zk.delete("/zoo2", -1); System.out.println("\n6. 查看节点是否被删除: ");
System.out.println(" 节点状态: [" + zk.exists("/zoo2", true) + "]"); System.out.println("\n7. 关闭client连接");
zk.close();
} private ZooKeeper createZookeeperInstance() throws IOException {
return new ZooKeeper("localhost:2181", ZookeeperDemo.SESSION_TIMEOUT, new Watcher() {
public void process(org.apache.zookeeper.WatchedEvent event) {
System.out.println(event.toString());
}
});
}
}

zookeeper初试的更多相关文章

  1. zookeeper(2)-curator

    一.Curator介绍 zookeeper的提交人也说过,curator对于zookeeper而言就像是guava对于java差不多,更加优雅高效. 而且之前的zookeeper原生API,往往因为2 ...

  2. 多节点,多线程下发订单,使用zookeeper分布式锁机制保证订单正确接入oms系统

    假设订单下发, 采用单机每分钟从订单OrderEntry接口表中抓100单, 接入订单oms系统中. 由于双十一期间, 订单量激增, 导致订单单机每分钟100单造成, 订单积压. 所以采用多节点多线程 ...

  3. Zookeeper客户端Curator---Getting Started

    先说个小插曲,前几天有个网站转载我的文章没有署名作者,我有点不开心就给他们留言了,然后今天一看他们把文章删了.其实我的意思并不是你允许转载,我想表达的是我的付出需要被尊重.也不知道是谁的错~ ==== ...

  4. Zookeeper 系列(五)Curator API

    Zookeeper 系列(五)Curator API 一.Curator 使用 Curator 框架中使用链式编程风格,易读性更强,使用工程方法创建连接对象使用. (1) CuratorFramewo ...

  5. curator框架的使用以及实现分布式锁等应用与zkclient操作zookeeper,简化复杂原生API

    打开zookeeper集群 先体会一下原生API有多麻烦(可略过): //地址 static final String ADDR = "192.168.171.128:2181,192.16 ...

  6. 基于Apache Curator框架的ZooKeeper使用详解

    一 简介 Apache Curator是一个比较完善的ZooKeeper客户端框架,通过封装的一套高级API 简化了ZooKeeper的操作.通过查看官方文档,可以发现Curator主要解决了三类问题 ...

  7. zookeeper安装步骤

    zookeeper安装步骤 百度搜索:zookeeper 进入后点击下载: 进入到下载的页面 英文: 中文: 进入版本列表: 进入后复制该链接, 在linux执行wget下载: wget https: ...

  8. 初试kafka消息队列中间件一 (只适合初学者哈)

    初试kafka消息队列中间件一 今天闲来有点无聊,然后就看了一下关于消息中间件的资料, 简单一点的理解哈,网上都说的太高大上档次了,字面意思都想半天: 也就是用作消息通知,比如你想告诉某某你喜欢他,或 ...

  9. 初试kafka消息队列中间件二(采用java代码收发消息)

    初试kafka消息队列中间件二(采用java代码收发消息) 上一篇 初试kafka消息队列中间件一 今天的案例主要是将采用命令行收发信息改成使用java代码实现,根据上一篇的接着写: 先启动Zooke ...

随机推荐

  1. 《安卓网络编程》之第三篇 使用Apache接口

    在Android系统中,提供了一下三种通信接口: 标准的Java 接口:java.net Apache接口:org.apache.http Android网络接口:android.net.http 在 ...

  2. Spring Cloud 客服端负载均衡 Ribbon

    一.简介   Spring Cloud Ribbon 是一个基于Http和TCP的客服端负载均衡工具,它是基于Netflix Ribbon实现的.它不像服务注册中心.配置中心.API网关那样独立部署, ...

  3. java 上传3(uploadify中文api)

    jquery文件上传控件 Uploadify 基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件. 要求使用jquery1.4或以上版本,fla ...

  4. 利用formatter原理自动化参数化查询

    前言:对于经常忙于服务端开发的小伙伴来说,与DB层打交道是在正常不过的事了,但是每次页面的查询条件新增往往意味着后端代码参数化同比增长,当然你可以不使用sqlhelper自带的参数化条件查询,可以直接 ...

  5. MySQL数据库安全策略

    1. 删除所有MySQL中的用户(包括root用户): mysql> delete from mysql.user root可以保留,然后修改为其他用户 2. 为管理员root用户设置密码 : ...

  6. coreCLR系列随笔 之ClrJit项目之alloc.cpp文件分析(1)

    首先声明,自己对CLR了解得不多,只是个人爱好,可能有错误,请指出,文件源码如下(可能不是最新的) // // Copyright (c) Microsoft. All rights reserved ...

  7. Dubbo源码分析系列---扩展点加载

    扩展点配置: 约定: 在扩展类的jar包内,放置扩展点配置文件:META-INF/dubbo/接口全限定名,内容为:配置名=扩展实现类全限定名,多个实现类用换行符分隔.(摘自dubbo文档) 示例: ...

  8. 两个HTML,CSS布局实例

    今天首先仿照某公司页面只做了一个几乎一模一样,连距离都相同的页面. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional/ ...

  9. Backbox Linux简介与配置内网IP

    总体说起来,Backbox内置的工具什么的,并不是很多,但是它集成了一些用起来很棒的工具. 比如:Beef.Sqlmap.wpscan.zenmap.msf.w3af.dns嗅探等一系列工具,传说中的 ...

  10. 依赖注入之Autofac使用总结

    依赖倒置?控制反转(IOC)? 依赖注入(DI)? 你是否还在被这些名词所困扰,是否看了大量理论文章后还是一知半解了? 今天我想结合实际项目,和正在迷惑中的新手朋友一起来学习和总结依赖注入Autofa ...