Zookeeper

1、什么是Zookeeper

 (1)Zookeeper是一个分布式的开源的应用程序协调的服务,是Google的Chubby一个开源的实现,

          它是集群的管理者,监视着集群中的各个节点的状态根据节点的反馈进行下一步合理的操作。

          最终,将简单易用的接口和性能高效的功能稳定的系统提供给客户;

 (2)Zookeeper 提供了 

          (2.1)文件系统

          (2.2) 通知机制

2、zookeeper 配置

     (1)下载 Zookeeper http://zookeeper.apache.org/releases.html

     (2) 解压  进入 bin/ 目录 点击 zkServer.cmd  文件启动服务;

           注意点:如果 命令行 一闪而过的因为他默认读取文件zoo.cfg ,

                         所以在conf 目录复制 zoosample.cfg 文件重命令为 zoo.cfg,

                         再次进入目录 bin,点击zkServer.cfg 启动服务,

          zookeeper 默认端口:2181

3、zookeeper  常用命令

 显示根目录下文件
       ls /              //查看当前节点数据
       ls2 /             //查看当前节点数据并能看到更新次数等数据

 创建文件, 并设置初始内容:
       create /config "test" //创建一个新的节点并设置关联值
       create /config “”     //创建一个新的空节点

获取文件内容
       get /brokers      //获取节点内容

修改文件内容
      set /zk "zkbak"   //对 zk 所关联的字符串进行设置

删除文件
      delete /brokers  //删除节点
      rmr    /brokers  //删除节点及子节点

4、java 操作 zookeeper

   //ZK 连接地址
    private static final String CONNECTSTRING="127.0.0.1:2181";
    //ZK 会话超时 时间
    private static final int SESSION_OUTTIME=2000;

    // 并发包 使用 CountDownLatch 阻塞用户,用户必须等待连接,发送成功的信号。
    private static final CountDownLatch  countDownLatch=new CountDownLatch(1);
    
    public static void main(String[] args) throws IOException, KeeperException, InterruptedException {
        ZooKeeper zooKeeper=new ZooKeeper(CONNECTSTRING, SESSION_OUTTIME, new Watcher() {
            //1. 事件通知
            public void process(WatchedEvent event) {
                //1.获取事件状态
                KeeperState keeperState=event.getState();
                //2.获取连接状态
                if(KeeperState.SyncConnected == keeperState ) {
                    //3. 获取到事件的类型
                    EventType eventType=event.getType();
                    if(eventType == eventType.None) {
                        countDownLatch.countDown();
                        System.out.println("##########zk开始启动连接 ##########");
                    }
                }
                    
            }
        });
        //阻塞
        countDownLatch.await();
        //创建持久类型 ,节点开发权限
        //String reuslt=zooKeeper.create("/java_zk/zkzk01", "zhangsan".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
        
        //创建临时节点,连接关闭后节点会消失
        String reuslt=zooKeeper.create("/java_zk/zkzk01", "temp".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);
        System.out.println("#####  新增节点信息:" + reuslt);
        zooKeeper.close();
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值