zookeeper是一个集中服务的开源框架,现在的版本是3.4.14,它可用于管理配置信息、命名空间、分布式同步以及提供分组服务。它的数据存在于内存中,结构类似于树结构,具有高吞吐量低延迟的特性,集群可靠性也比较高。
在zookeeper中只有绝对路径的概念,没有相对路径,它是以"/"左斜线作为开始的根节点的,每一个节点叫做znode节点,每一个节点都必须有个value值,节点的类型可以是持久节点、持久有序节点、临时节点、临时有序节点,持久有序是指数据不会随着应用程序的存在而存在,只有zookeeper没有退出运行,那么数据会一直存在,有序是指不同客户端在争抢创建同一个节点时将会在该节点下生成一系列有序的value值,这也是zookeeper提供的高可用性来保证的,该有序的value值是一个带符号的10位十进制序号,如app节点下面争抢创建一个为app2的子节点,其中一台客户端创建了一个节点为app20000000003的有序节点;临时节点则和持久节点刚好相反,它是在应用程序下线或者过期时间到达后就自动删除了。作为一个快速高效响应的框架,它要求存储的数据不能超过1M。
在Windows上安装完成zookeeper,然后进入安装目录的bin下面,通过zkServer.cmd来启动服务,在启动
zkCli.cmd,就可以进入到zookeeper的命令模式编辑zookeeper中的数值,通过help命令,我们看到有以下属性
主要说明下几个命令:
1.ls---用于获取指定节点下面的所有子节点信息,如ls /
2.create---用于在指定路径下面创建子节点,-s是指顺序节点,-e是指临时节点,默认创建的是持久节点,如创建持久有序节点s1,create -s /s1 123
3.get---获取节点下面的具体信息如图所示
456表示节点zk的value值;
cZxid表示创建该节点时的zxid,zxid又称为事务id,它是一个全局的有序值;
ctime表示该节点的创建时间;
mZxid表示修改该节点后的最后的zxid;
mtime表示修改该节点的最后时间;
pZxid表示该节点的子节点的最后修改zxid;
cversion表示该节点的子节点变更的次数;
dataVersion表示该节点被修改的次数;
aclVersion表示该节点的acl被修改的次数;
ephemeralOwner表示临时节点所有者的会话id,非临时节点为0;
dataLength表示该节点的value值数据长度;
numChildren表示该节点下的子节点数量,不包括子节点下的子节点。
4.set---表示设置指定节点的最新值,如set /zk 789,它会更新mZxid,mtime,dataVersion,dataLength等这几个属性。
5.delete---表示删除指定节点,如delete /zk/app2,如果指定节点下面有子节点,则不能删除成功。
6.sync---表示等待指定节点的数据同步。
了解完zk的client端的操作,我们来看下集群配置下的最简单的配置,进入到zk安装路径下的conf文件夹,打开zoo.cfg文件,我们会为其配置如下的
tickTime=2000 initLimit=10 syncLimit=5 dataDir=D:/zookperData/zookper1/data dataLogDir=D:/zookperData/zookper1/dataLog clientPort=2181 server.1=localhost:2888:3888 server.2=localhost:2889:3889 server.3=localhost:2890:3890
我们的集群是配置在本机上面,同时开启3个服务端,我们说明下这些参数的含义
tickTime---用于集群中的leader和follower之间的心跳检测时间,也用于与客户端进行会话超时管理,目前允许最小为2倍tickTime,最大为20倍tickTime的设定。
initLimit---用于集群中的leader和follower之间完成初始化同步时能容忍的最多心跳次数。
syncLimit---用于集群中的leader和follower之间请求和应答能容忍的最多心跳次数。
dataDir---用于内存数据库快照的文件和存放事务日志(没有指定dataLogDir时)的路径。
dataLogDir---专门用于存放事务日志的路径。
clientPort---用于客户端访问zookeeper时的访问接口。
server.1表示第一台服务器的地址,这个1和dataDir路径下的myid文件中的内容相同,在这个文件中存放的数据也是1,该文件没有后缀,这个是必须要注意的情况,localhost:2888:3888分别表示服务端的地址:leader和follower直接数据同步的端口:选举leader时的端口。
相关推荐
1. 在ZooKeeper上创建一个配置节点,如`/config/application.properties`,并将配置信息写入。 2. 创建一个自定义的`PropertyPlaceholderConfigurer`子类,如`ZooKeeperPropertyPlaceholderConfigurer`。 3. 在`...
**Zookeeper**是一个高性能、分布式且开源的应用协调服务,作为Apache Hadoop的一个子项目,它提供了简单而强大的功能集,帮助分布式应用实现诸如同步服务、配置维护、命名服务以及分布式组服务等高级特性。...
在本文中,我们将深入探讨如何使用Java语言,通过Spring框架整合Zookeeper和Dubbo来构建一个简单的分布式服务案例。Zookeeper作为一个分布式协调服务,而Dubbo是一个高性能、轻量级的RPC(远程过程调用)框架,它们...
1. ZooInspector:Zookeeper自带的一个简单图形化工具,用于查看Zookeeper的数据树和配置信息。 2. ZKBrowser:一款开源的Zookeeper管理工具,提供了更丰富的功能,如集群监控、节点操作、权限管理等。 3. Zookeeper...
Zookeeper通过提供一系列基本的服务,如配置管理、统一命名服务、分布式同步以及组服务等,帮助开发人员解决分布式系统中常见的问题。 ### Zookeeper的核心原理 #### 分布式一致性解决方案 Zookeeper本质上是一个...
**Zookeeper:分布式...无论是简单的配置共享,还是复杂的分布式锁和集群管理,Zookeeper都提供了简洁而强大的解决方案。对于开发者来说,理解和掌握Zookeeper的使用方法和原理,对于构建健壮的分布式系统至关重要。
【标题】 Dubbo+Zookeeper+Spring整合:一个简单的Demo源码分析 在这个教程中,我们将深入探讨如何将三个关键的开源技术——Dubbo、Zookeeper和Spring——整合在一起,构建一个基本的服务发现和调用的分布式应用。...
Zookeeper是Apache Hadoop项目下的一个分布式协调服务,它是一个为分布式应用提供一致性服务的软件,主要用于解决分布式环境中的数据一致性问题。在本场景中,我们关注的是Zookeeper的单节点部署模式,这对于理解...
它提供了一种可靠的方式来管理配置信息、命名服务、分布式同步以及组服务。Zookeeper连接工具则是为了方便用户与Zookeeper服务器进行交互,特别是对于数据的可视化查看,使得管理和调试变得更加直观。 在提供的...
- **版本介绍**:ZooKeeper 3.3.6是ZooKeeper的一个稳定版本,提供了高可用性和一致性保证,适用于大规模分布式系统的协调任务。 - **功能**:ZooKeeper的主要功能包括命名服务、配置管理、组服务、分布式同步、...
Apache ZooKeeper 是一个开源的分布式协调服务,它为分布式应用提供高效且可靠的命名服务、配置管理、集群同步、领导者选举等核心功能。Zookeeper 在大规模分布式系统中扮演着举足轻重的角色,是许多大数据和云计算...
在本案例中,我们主要探讨如何将SpringBoot与Dubbo以及Zookeeper进行集成,从而构建一个高可用的服务治理系统。这个系统将利用SpringBoot的简洁性来管理微服务,Dubbo作为服务提供者和服务消费者之间的通信框架,而...
Zookeeper是一个高性能的分布式协调服务,由Apache Hadoop项目开发,用于解决分布式环境中的命名、配置管理、同步、组服务等问题。在本例中,我们将深入探讨Zookeeper的基本概念、操作实例以及如何实现领导者选举和...
《ZooInspector:Zookeeper的可视化连接工具》 ZooInspector是Zookeeper生态系统中的一个实用工具,...总的来说,ZooInspector是Zookeeper用户和开发者不可或缺的一款实用工具,它将复杂的Zookeeper操作变得简单易行。
- **集群模式**:实际生产环境中使用的模式,需要在每台机器上启动一个Zookeeper实例,并配置`myid`和`server.x`属性来确定集群成员及其角色。 #### Zookeeper CAPI 简介 - **Watches** - **监视函数原型** ...
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和性能高效、功能稳定的系统提供给用户。...
《Zookeeper VW:一款强大的Zookeeper可视化工具》 在分布式系统管理中,Apache ZooKeeper扮演着至关重要的角色,它提供了一种可靠的方式来管理和协调分布式应用的数据。为了更好地理解和管理Zookeeper中的数据节点...
1. **服务提供者(Provider)**:实现具体业务逻辑的服务代码,配置了Dubbo的相关属性,如服务接口、实现类、版本号等,并将这些信息注册到Zookeeper。 2. **服务消费者(Consumer)**:通过Dubbo API调用服务提供者...
Linux Zookeeper 3.6.3 是一个专为分布式系统设计的开源协调服务。它主要用于管理分布式应用中的配置信息、命名服务、分布式同步以及组服务等。Zookeeper 的设计目标是简单、高效并且高可用,它在分布式环境中扮演着...
- ZooKeeper的配置文件是`conf/zoo.cfg`,在这个文件中你需要设置`dataDir`属性,指定ZooKeeper的数据存储位置,例如`dataDir=C:/Zookeeper/data`。 2. **启动ZooKeeper服务**: - 在`bin`目录下,找到`zkServer....