获取zookeeper的节点,ip,端口

 private static ZooKeeper zk = null;
	//对zk进行初始化,要判断连接成功后才能调用,不判断的话,把zk的超时时间设置长点,不然会包超时错误
    public static void initZook() throws Exception {
        PropertiesHelper atsrootConfig = ATSROOTConfig.getATSROOTConfig();
        String path = (String) atsrootConfig.get("REGISTER.Svr1.Host");
        zk = new ZooKeeper(path, 10000, new Watcher() {
            @Override
            public void process(WatchedEvent watchedEvent) {
                logger.info("ZK mongitor {}", watchedEvent.getState());
            }
        });
        while (true) {
            if (zk.getState() == ZooKeeper.States.CONNECTING) {
                break;
            } else {
                logger.info("ZK mongitor reload connection");
                Thread.sleep(1000);
            }
        }
    }

  public void getZookeeper() throws Exception {
        ls("/MDTService", zk, "1");
    }

//循环获取zk的节点,ip和端口
    public static void ls(String path, ZooKeeper zk, String type)
            throws Exception {
        byte[] bts = zk.getData(path, false, null);
        String str = new String(bts);
        if (str.contains("Stat")){
            logger.info(path + ":" + str);
            String[] serverName = path.split("/");
            MonitorMsg monitor = getMonitor(serverName[serverName.length - 1], str);
            MonitorRockDB.saveMonitor(monitor);
        }

        List<String> list = zk.getChildren(path, null);
        if ((list.isEmpty()) || (list == null)) {
            return;
        }
        for (String s : list) {
            if (path.equals("/"))
                ls(path + s, zk, type);
            else
                ls(path + "/" + s, zk, type);
        }
    }
   private static MonitorMsg getMonitor(String... strings) {
        MonitorMsg msg = new MonitorMsg();
        msg.serverName = strings[0];
        msg.key = "zookeeper";
        msg.desc = strings[1];
        msg.value = 1;
        return msg;
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

无奈的码农

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

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

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

打赏作者

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

抵扣说明:

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

余额充值