本地模拟搭建zookeeper集群

第一步:下载 zookeeper-3.3.6.tar.gz

下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/

第二步:在本地新建一个文件夹,在其中新建zookeeper1,zookeeper2,zookeeper3,tmp四个目录,将下载好的zookeeper-3.3.6.tar.gz分别解压至zookeeper1,zookeeper2,zookeeper3.至于为何建3个而不是2个,4个,请详见zookeeper集群的原理.tmp目录中再新建zk1,zk2,zk3三个目录,每个目录中建data,log两个目录;然后分别在data文件夹下新建一个名为myid的无扩展名的文件,文件内容分别为父父目录名末尾数字.

第三步:分别打开zookeeper1,zookeeper2,zookeeper3,找到conf目录下的zoo.cfg文件.其中,

第一个配置:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:/zookeeper-3.3.6/tmp/zk1/data
dataLogDir=D:/zookeeper-3.3.6/tmp/zk1/log
clientPort=2181
server.1=localhost:2287:3387
server.2=localhost:2288:3388

server.3=localhost:2289:3389

第二个配置:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:/zookeeper-3.3.6/tmp/zk2/data
dataLogDir=D:/zookeeper-3.3.6/tmp/zk2/log
clientPort=2182
server.1=localhost:2287:3387
server.2=localhost:2288:3388

server.3=localhost:2289:3389

第三个配置:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:/zookeeper-3.3.6/tmp/zk3/data
dataLogDir=D:/zookeeper-3.3.6/tmp/zk3/log
clientPort=2183
server.1=localhost:2287:3387
server.2=localhost:2288:3388

server.3=localhost:2289:3389

注意:clientPort这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。由于是本地模拟集群,因此此端口值配置时不可重复,否则会端口冲突报错.真实的zookeeper集群是将zookeeper分别装在不同计算机中的,因此一般会将此端口值配值一样,这样方便管理.

第四步:启动zookeeper集群

Windows环境下,分别打开zookeeper1,zookeeper2,zookeeper3目录,找到bin目录下的


分别双击启动,打开之后不可关闭.

第五步:检测zookeeper集群是否搭建完成.

此处需要安装ZooInspector-客户端.


改变端口号为2182,2183可分别登录集群中另外两台zookeeper的客户端.

第六步:测试使用java连接zookeeper.

public class ZookeeperTest {

    public static void main(String args[]){

        try {
            //连接单个zk server
            //ZooKeeper zk = new ZooKeeper("localhost:2181", 300000, new DemoWatcher());
            //连接zk集群
            ZooKeeper zk = new ZooKeeper("localhost:2181,localhost:2182,localhost:2183", 300000, new DemoWatcher());//连接zk server
            String node = "/zookeeper/liuyangNode";
            Stat stat = zk.exists(node, false);//检测/app1是否存在
            if (stat == null) {
                //创建节点
                String createResult = zk.create(node, "liuyang".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
                System.out.println("创建节点:"+createResult);
            }else{
                System.out.println("节点:"+node+"已存在");
            }

            //获取节点的值
            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();
        }

    }

    static class DemoWatcher implements Watcher {
        @Override
        public void process(WatchedEvent event) {
            System.out.println("======================");
            System.out.println("path:" + event.getPath());
            System.out.println("type:" + event.getType());
            System.out.println("stat:" + event.getState());
            System.out.println("======================");
        }
    }
}
至此,zookeeper集群已搭建并验证完毕,小伙伴们现在可以自己试试咯.....
                
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值