1、安装zookeeper
下载zk http://archive.cloudera.com/cdh5/cdh/5/
配置文件
tickTime=2000 initLimit=10 syncLimit=5 # zk数据保存目录 dataDir=/usr/local/zookeeper/data clientPort=2181
启动:
bin/zkServer.sh start
客户端命令行链接:
bin/zkCli.sh
2、拷贝zookeeper下的jar包,到应用程序,并使用maven引入相关jar包
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.5-cdh5.10.0</version> <scope>system</scope> <systemPath>${project.basedir}/lib/zookeeper-3.4.5-cdh5.10.0.jar</systemPath> </dependency>
java 代码
import org.apache.zookeeper.CreateMode; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher; import org.apache.zookeeper.Watcher.Event.EventType; import org.apache.zookeeper.ZooDefs.Ids; import org.apache.zookeeper.ZooKeeper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class ZookeeperContext { protected static Logger logger = LoggerFactory.getLogger("zk"); public final int SESSION_TIME_OUT = 2000; public ZooKeeper zk; /** * 判断zk的链接链接状态 * */ public boolean isConnected(){ return zk.getState() == ZooKeeper.States.CONNECTED; } /** * 创建zk链接 * **/ public ZookeeperContext(String connectString) { try { /** * connectString 链接zookeeper的Ip和端口,多个用逗号隔开例如: * 10.0.0.104:2181,10.0.0.105:2181 sessionTimeout * 客户端和zookeeper链接断开后,数据最长保存的时间 watcher 监控回调,服务器数据修改会回调 */ zk = new ZooKeeper(connectString, SESSION_TIME_OUT, new ZookeeperWatcher()); } catch (Exception e) { e.printStackTrace(); } } /** * zk监听,如果服务器端有什么变化到这里接收 * 并继续添加监听 * */ public class ZookeeperWatcher implements Watcher { @Override public void process(WatchedEvent event) { try { if(null != event.getPath()){ System.out.println( event ); if(event.getType() == EventType.NodeChildrenChanged){ zk.getChildren(event.getPath(), true) ; }else{ zk.getData(event.getPath(), true, null) ; } } } catch (Exception e) { e.printStackTrace(); } } } /** * 在zk创建数据 * */ public void setData(String path,byte[]data , CreateMode createMode){ try { if(zk.exists(path, false) == null){ zk.create(path, data, Ids.OPEN_ACL_UNSAFE, createMode) ; }else{ zk.setData(path,data,-1); } zk.getChildren(path, true) ; } catch (Exception e) { logger.error("setData", e ); } } public static void main(String[] args)throws Exception { ZookeeperContext context = new ZookeeperContext("10.0.0.104:2181"); while (!context.isConnected()) { Thread.sleep(3000); } context.setData("/root", "1".getBytes(),CreateMode.PERSISTENT); context.setData("/root/hpgary", "gg".getBytes() , CreateMode.EPHEMERAL); System.err.println("eee"); System.in.read() ; } }
相关推荐
第7章介绍C语言版的API接口,也可以作为非Java语言实现的ZooKeeperAPI的基础,对非Java语言的开发人员非常有帮助。第8章介绍一款更高层级的封装的ZooKeeper接口。第三部分(第9~10章)主要介绍ZooKeeper内部原理及...
zooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是集群的管理者。提供了文件系统和通知机制。...在开发项目的过程中,很多大型项目都是分布式部署的,那么我们现在使用zookeeper实现一个分布式锁。
第7章介绍C语言版的API接口,也可以作为非Java语言实现的ZooKeeperAPI的基础,对非Java语言的开发人员非常有帮助。第8章介绍一款更高层级的封装的ZooKeeper接口。第三部分(第9~10章)主要介绍ZooKeeper内部原理及...
在程序开发过程中不得不考虑的就是并发问题。在java中对于同一个jvm而言,jdk已经提供了lock和同步等。但是在分布式情况下,往往存在多个进程对一些资源产生竞争关系,而这些进程往往在不同的机器上,这个时候jdk中...
第7章介绍C语言版的API接口,也可以作为非Java语言实现的ZooKeeperAPI的基础,对非Java语言的开发人员非常有帮助。第8章介绍一款更高层级的封装的ZooKeeper接口。第三部分(第9~10章)主要介绍ZooKeeper内部原理及...
第7章介绍C语言版的API接口,也可以作为非Java语言实现的ZooKeeperAPI的基础,对非Java语言的开发人员非常有帮助。第8章介绍一款更高层级的封装的ZooKeeper接口。第三部分(第9~10章)主要介绍ZooKeeper内部原理及...
第7章介绍C语言版的API接口,也可以作为非Java语言实现的ZooKeeperAPI的基础,对非Java语言的开发人员非常有帮助。第8章介绍一款更高层级的封装的ZooKeeper接口。第三部分(第9~10章)主要介绍ZooKeeper内部原理及...
第7章介绍C语言版的API接口,也可以作为非Java语言实现的ZooKeeperAPI的基础,对非Java语言的开发人员非常有帮助。第8章介绍一款更高层级的封装的ZooKeeper接口。第三部分(第9~10章)主要介绍ZooKeeper内部原理及...
Java分布式ETL框架
zookeeper的分布式全局锁纯代码解决方案,特点:易上手,可二次开发和封装。
Java基于SOA架构的分布式电商购物商城 前后端分离 前台商城:Vue全家桶 后台管理系统:Dubbo/SSM/Elasticsearch/Redis/MySQL/ActiveMQ/Shiro/Zookeeper等。 Java基于SOA架构的分布式电商购物商城 前后端分离 前台商城...
spring 、springmvc、mybatis、maven、html5、jquery、freemarker、Redis(缓存服务器)、Solr(搜索引擎)、Dubbo(调用系统服务)、Nginx(web服务器)、FastDFS(文件服务器)、Shiro(权限框架)、Zookeeper...
第7章介绍C语言版的API接口,也可以作为非Java语言实现的ZooKeeperAPI的基础,对非Java语言的开发人员非常有帮助。第8章介绍一款更高层级的封装的ZooKeeper接口。第三部分(第9~10章)主要介绍ZooKeeper内部原理及...
基于Zookeeper实现分布式锁实践。Zookeeper是一个分布式的,开源的分布式应用程序协调服务,是Hadoop和hbase的重要组件。zookeeper的数据机构是一种节点树的数据结构,zNode是基本的单位,znode是一种和unix文件系统...
1 Zookeeper分布式安装、开发 1.1 Zookeeper分布式安装 1.1.1 Zookeeper概述 Zookeeper概述 什么是Zookeeper --Zookeeper是Google的Chubby一个开源的实现,是Hadoop的分布式协调服务 --它包含一个简单的原语集,...
Java商城后台管理系统 技术选型 注册中心:zookeeper 分布式治理框架 :dubbo 核心框架:Spring Boot 权限框架:Apache Shiro 模板引擎:Freemarker 持久层框架:MyBatis 和 MyBatis-plus 数据库连接池:Alibaba ...
redis和zk两种不同方式实现分布式锁,互联网开发小伙伴必备技能!