zookeeper分布式集群中基于Curator实现单点设备上线下线心跳感知系统(二)

本文介绍了如何使用ApacheCurator库在Java中创建和管理ZooKeeper节点,包括创建路径、设置ephemeralsequential模式,并监听节点变化。作者还提到一个模拟设备B接入分布式集群的例子。
摘要由CSDN通过智能技术生成

String s = client.create()

.creatingParentsIfNeeded()

.withMode(CreateMode.PERSISTENT)

.forPath(DEVICE_PATH);

System.out.println(“已创建:” + s);

} else {

System.out.println(“已存在:” + DEVICE_PATH);

}

TreeCache treeCache = new TreeCache(client, DEVICE_PATH);

TreeCacheListener treeCacheListener = new TreeCacheListener() {

@Override

public void childEvent(CuratorFramework client, TreeCacheEvent event) throws Exception {

System.out.println(“-----”);

System.out.println(“路径:” + event.getData().getPath());

System.out.println(“数据:” + new String(event.getData().getData(), “UTF-8”));

System.out.println(“ZooKeeper:” + client.getZookeeperClient().getZooKeeper().toString());

}

};

treeCache.getListenable().addListener(treeCacheListener);

treeCache.start();

synchronized (this) {

wait();

}

}

}

下面这个设备B模拟一个普通设备接入分布式集群中:

import org.apache.curator.RetryPolicy;

import org.apache.curator.framework.CuratorFramework;

import org.apache.curator.framework.CuratorFrameworkFactory;

import org.apache.curator.retry.ExponentialBackoffRetry;

import org.apache.zookeeper.CreateMode;

public class Main {

private String DEVICE_PATH = “/devices”;

public static void main(String[] args) {

//初始化log4j,zookeeper否则报错。

//org.apache.log4j.BasicConfigurator.configure();

try {

Main app = new Main();

} catch (Exception e) {

e.printStackTrace();

}

}

public Main() throws Exception {

RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 5);

CuratorFramework client = CuratorFrameworkFactory.builder()

.connectString(getAddress())

.sessionTimeoutMs(20 * 1000)

.connectionTimeoutMs(20 * 1000)

.retryPolicy(retryPolicy)

.build();

client.start();

String s = client.create()

.creatingParentsIfNeeded()

.withMode(CreateMode.EPHEMERAL_SEQUENTIAL)

.forPath(DEVICE_PATH + “/client”);

System.out.println(“已创建:” + s);

synchronized (this) {

wait();

}

}

private String getAddress() {

学习分享,共勉

Android高级架构师进阶之路

题外话,我在阿里工作多年,深知技术改革和创新的方向,Android开发以其美观、快速、高效、开放等优势迅速俘获人心,但很多Android兴趣爱好者所需的进阶学习资料确实不太系统,完整。今天我把我搜集和整理的这份学习资料分享给有需要的人

  • Android进阶知识体系学习脑图

  • Android进阶高级工程师学习全套手册

  • 对标Android阿里P7,年薪50w+学习视频

  • 大厂内部Android高频面试题,以及面试经历

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

么很难做到真正的技术提升。**

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值