【Zookeeper】安装配置以及Java测试连接

1 安装

下载地址:https://www.apache.org/dyn/closer.cgi/zookeeper/

样例下载版本:3.4.13,样例操作系统:windows,JDK:1.8

将下载压缩包解压到某个路径下,并创建data和log两个目录

2 配置

ZooKeeper的三种模式:单机模式、集群模式和伪集群模式。

以单机模式举例:

1、拷贝zookeeper-3.4.13\conf下的zoo_sample.cfg文件到当前路径(conf),命名为zoo.cfg

2、修改zoo.cfg的data和log配置,端口默认2181,如果冲突,可修改。

配置说明:

tickTime:心跳时间

initLimit:多少个tickTime内,允许其他server连接并初始化数据

syncLimit:多少个tickTime内,允许follower节点同步

dataDir:存放内存数据文件目录,根据实际环境修改

dataLogDir:存放日志文件目录,根据实际环境修改

clientPort:监听端口,使用默认2181端口

server.x:配置集群主机信息,[hostname]:[通信端口]:[选举端口],x是data下myid文件的内容,集群环境唯一

maxClientCnxns:最大并发客户端数,用于防止DOS的,设置为0是不加限制

minSessionTimeout:最小的客户端session超时时间(单位是毫秒)

maxSessionTimeout:最大的客户端session超时时间(单位是毫秒)

3、运行:执行bin下面的zkServer.cmd

通过执行过程,发现zookeeper读取了我们刚刚创建的zoo.cfg文件。

确认端口2181已经开放,启动正常。

3 Java连接访问

添加maven依赖:

<!-- https://mvnrepository.com/artifact/org.apache.zookeeper/zookeeper -->
<dependency>
	<groupId>org.apache.zookeeper</groupId>
	<artifactId>zookeeper</artifactId>
	<version>3.4.13</version>
</dependency>

样例代码:

package com.chaozai.dubbo.test;

import java.io.IOException;

import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooDefs;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.data.Stat;

/**
 * 测试单机Zookeeper环境连接
 * @author chaozai
 * @date 2019年3月5日
 *
 */
public class TestZookeeper {
    
    public static void main(String[] args) {
	try {
	    ZooKeeper zk = new ZooKeeper("127.0.0.1:2181", 10000, new TestWatcher());
	    String node = "/test";
	    Stat stat = zk.exists(node, false);
	    //如果节点不存在,则创建节点
	    if(null==stat){
		String createResult = zk.create(node, "test".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
		//获取创建结果
		System.out.println(createResult);
	    }
	    //将会把“test”字符返回
	    byte[] b = zk.getData(node, false, stat);
	    System.out.println(new String(b));
	    zk.close();
	} catch (IOException e) {
	    e.printStackTrace();
	} catch (KeeperException e) {
	    e.printStackTrace();
	} catch (InterruptedException e) {
	    e.printStackTrace();
	}
    }
    
}
/**
 * 测试Watcher
 * @author chaozai
 * @date 2019年3月5日
 *
 */
class TestWatcher implements Watcher{

    public void process(WatchedEvent arg0) {
	System.out.println("-----------------------");
	System.out.println("WatchedEvent:"+arg0);
	System.out.println("-----------------------");
    }
    
} 

运行结果:

-----------------------
WatchedEvent:WatchedEvent state:SyncConnected type:None path:null
-----------------------
/test
test

 


爱家人,爱生活,爱设计,爱编程,拥抱精彩人生!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qqchaozai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值