zookeeper集群

有了java环境之后
建立三个结点的集群

vi /etc/hosts

在这里插入图片描述

vim /etc/profile

在这里插入图片描述

vim /usr/local/java/apache-zookeeper-3.6.2-bin/conf/zoo.cfg

dataDir=/tmp/zookeeper/data
dataLogDir=/tmp/zookeeper/log
//记得检查空格(重点)
server.1=CentosA:2888:3888
server.2=CentosB:2888:3888
server.3=CentosC:2888:3888

dataDir 是缓存数据路径
2888为组成zookeeper服务器之间的通信端口,3888为用来选举leader的端口

vi /tmp/zookeeper/data/myid

在三个结点的myid文件中分别写入 1 , 2 ,3 ;一定要不同

相关操作

cd vim /usr/local/java/apache-zookeeper-3.6.2-bin
./zkServer.sh start start-foreground启动
./zkServer.sh status 查看状态,如果集群搭建成功则会显示follower或者leader
./zkServer.sh stop 关闭

java 操作

连接

    //可以写多个地址,代表连接集群
    private static String ip = "192.168.93.103:2181,192.168.93.102:2181,192.168.93.101:2181";
    private static int  session_timeout = 40000;
    private static CountDownLatch latch = new CountDownLatch(1);
    private ZooKeeper zooKeeper = null;
	
	public ZooKeeper getZkClient() throws IOException, InterruptedException {
        zooKeeper = new ZooKeeper(ip, session_timeout, new Watcher() {
            @Override
            public void process(WatchedEvent watchedEvent) {
                if(watchedEvent.getState() == Event.KeeperState.SyncConnected) {
                    //确认已经连接完毕后再进行操作
                    latch.countDown();
                    System.out.println("已经获得了连接");
                    System.out.println(watchedEvent.getType()+" "+watchedEvent.getPath());
                }
            }
        });

        //连接完成之前先等待
        latch.await();
        ZooKeeper.States states = zooKeeper.getState();
        System.out.println(states);
        return zooKeeper;
    }

创建结点

		//参数1:创建节点的路径;
        //参数2:创建节点存储的数据;
        //参数3.创建节点后节点具有的权限
        //参数4.节点类型  持久的还是短暂的
        String create = zooKeeper.create("/kxj","kxj".getBytes(), 		 ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
		System.out.println(create);
		会输出:
		None--null //
		kxj //创建结点成功打印出来的

打印子节点

		List<String> children = zooKeeper.getChildren("/", false);
        for(String child : children){
            System.out.println(child);
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值