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() ; } }
相关推荐
ZooKeeper是由Apache Hadoop项目开发的开源组件,它为分布式应用提供了一个高效、可靠的分布式协调解决方案。在分布式系统中,数据一致性、命名服务、配置管理、集群管理等任务常常变得复杂且难以处理,而ZooKeeper...
本项目"springBoot+dubbo+zookeeper分布式微服务"充分利用了这三个组件的优势,构建了一个高效、可扩展且易于维护的服务网络。以下是对这些技术及其整合应用的详细说明: **SpringBoot** SpringBoot是Spring框架的...
Apache ZooKeeper是一个开源的分布式协调服务,它主要用来协调分布式应用中那些相对独立的服务。ZooKeeper的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,为用户程序提供简单易用的接口。本书...
在实际应用中,开发人员通常会使用如Java的`org.apache.zookeeper`包或者Python的` kazoo`等客户端库来与Zookeeper交互。这些库提供了丰富的API,使得开发者能够方便地实现包括分布式锁在内的各种功能。 总结,...
本源码为基于Java的ZooKeeper分布式协调系统设计,包含934个Java文件、66个PNG文件等,共1500个文件。该项目旨在为用户提供一个全面、便捷的分布式协调解决方案,通过Java、C、Python、Shell、JavaScript、HTML和CSS...
在处理订单生成的场景中,我们可以这样应用ZooKeeper分布式锁: 1. 当用户发起订单请求时,服务端会尝试在ZooKeeper上创建一个临时顺序节点。 2. 如果创建成功,服务端会检查当前最小序号的节点是否是自己创建的。...
在Java开发中,使用Zookeeper通常涉及到以下知识点: 1. Zookeeper客户端库:Java中可以使用Zookeeper官方提供的zookeeper-clients库,通过ZooKeeper类创建连接,进行会话管理、数据读写、watch监听等操作。 2. 数据...
Zookeeper分布式系统开发实战 Zookeeper是一款开源的分布式协调服务,最初由雅虎研究院开发,后来 BecameApache软件基金会的开源项目。Zookeeper的主要作用是提供一种高效、可靠、可扩展的分布式系统协调机制,用于...
Paxos算法是解决这一问题的经典方案,而ZooKeeper则是Apache基金会开发的一个分布式协调服务,它基于Paxos和其他一致性算法实现,为分布式应用提供可靠的分布式协调服务。 Paxos算法是由Leslie Lamport提出的,它...
在实际开发中,Java程序员经常使用Zookeeper的Java客户端库,该库提供了一套方便的API,使得与Zookeeper服务器的交互变得更加简单。此外,Zookeeper还支持多种编程语言的客户端,如Python、C++等,满足不同开发需求...
分布式锁是解决多节点系统中同步问题的一种常见技术,ZooKeeper,由Apache基金会开发的分布式协调服务,常被用于实现高效可靠的分布式锁。本文将深入探讨如何利用ZooKeeper来构建分布式锁,并讨论其背后的关键概念和...
本压缩包文件"从PAXOS到ZOOKEEPER分布式一致性.rar"包含了对这两种技术的深入探讨。 Paxos算法,由Leslie Lamport提出,是一种解决分布式系统中一致性问题的协议。它旨在确保在存在网络延迟、消息丢失或重复等不...
【ssm+dubbo+zookeeper分布式CRUD demo】项目是一个典型的Java Web分布式开发示例,它结合了Spring、SpringMVC和MyBatis(SSM)框架,并利用Dubbo作为服务治理框架,配合Zookeeper作为注册中心,实现了服务的高可用...
在构建分布式系统时,"dubbo spring zookeeper分布式集群搭建完整例子" 提供了一个实践性的教程,涵盖了多种关键技术和工具。下面将详细解释这个例子中涉及的知识点。 首先,我们来了解一下**SpringMVC**。...
zooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是集群的管理者。提供了文件系统和通知机制。...在开发项目的过程中,很多大型项目都是分布式部署的,那么我们现在使用zookeeper实现一个分布式锁。
Zookeeper,一个由Apache Hadoop项目开发的分布式协调服务,为解决这些问题提供了强大的支持。它被广泛用于实现分布式锁、配置管理、服务发现等多个场景。本篇文章将深入探讨如何使用Zookeeper实现分布式共享锁。 ...
《从Paxos到ZooKeeper分布式一致性原理实践》是一本深入探讨分布式系统一致性问题的著作,涵盖了从理论到实际应用的广泛知识。Paxos算法是分布式计算领域中的一个里程碑,而ZooKeeper则是Apache基金会的一个开源项目...
在C#开发环境中,我们可以借助外部协调服务,如Apache ZooKeeper,来实现分布式锁。ZooKeeper是一个高可用的分布式协调服务,它提供了诸如命名服务、配置管理、分布式同步、组服务等功能。本篇将深入探讨如何在C#中...
SSM 是 Spring、Spring MVC 和 MyBatis 的缩写,这是一个流行的Java Web开发框架组合。Spring 提供了强大的依赖注入和面向切面编程能力,Spring MVC 用于处理Web请求和响应,而MyBatis则作为一个轻量级的持久层框架...