1.概述
zookeeper是一个分布式协调系统,主要目的是为了减轻构建健壮的分布式系统的负担。应用场景有领导选举,崩溃检测,分布式队列和锁等。
zookeeper被应用在hbase/solr/kafka/dubbo等系统上。而且本人发现越来越多的分布式系统都开始采用zookeeper作为底层基础设施。
2.环境
Win7 64bit
JDK 1.7.0_72
zookeeper 3.4.6
3.起步试验
3.1 下载
http://zookeeper.apache.org/releases.html
本文写作时zookeeper最新版是3.4.6
3.2 运行服务端(单机模式)
cd conf
cp zoo_sample.cfg zoo.cfg
修改zoo.cfg
dataDir=D:/opensource/zookeeper/zookeeper-3.4.6/data
然后运行以下命令即启动服务端
cd ../bin
zkServer
3.3 运行客户端
zkCli
[zk: localhost:2181(CONNECTED) 1] create /workers "abc"
Created /workers
[zk: localhost:2181(CONNECTED) 2] ls /
[workers, zookeeper]
[zk: localhost:2181(CONNECTED) 3] create /workers/1 "abc1"
Created /workers/1
[zk: localhost:2181(CONNECTED) 4] quit
以上命令,创建了2个节点,分别是/workers 和/workers/1
4.ZooInspector
contrib目录下有一个简单的图形化界面,用来查看zookeeper节点。
cd contrib\ZooInspector
java -cp zookeeper-3.4.6-ZooInspector.jar;lib/*;../../zookeeper-3.4.6.jar;../../lib/* org.apache.zookeeper.inspector.ZooInspector
界面效果如下图,可以看到我们之前创建的2个节点以及节点内容。简单用用还是不错的。
5.Quorums模式(集群模式)
试了一下,windows下要用cygwin才能模拟。不然会出错。蛮坑爹的,对windows支持不好,不过也可以理解。
本次试验我们准备启动3个zookeeper服务。
5.1 准备3个服务各自的目录和myid文件
mkdir z1
mkdir z1\data
mkdir z2
mkdir z2\data
mkdir z3
mkdir z3\data
echo 1 > z1/data/myid
echo 2 > z2/data/myid
echo 3 > z3/data/myid
执行完以后记得手工打开myid文件看一下,1后面会多一个空格,记得去掉。另外两个2,3也一样,把空格去掉。
5.2 配置cfg
z1.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:/opensource/zookeeper/zookeeper-3.4.6/z1/data
clientPort=2181
server.1=127.0.0.1:2222:2223
server.2=127.0.0.1:3333:3334
server.3=127.0.0.1:4444:4445
z2.cfg(和z1.cfg相同地方已省略,只列出不同点)
dataDir=D:/opensource/zookeeper/zookeeper-3.4.6/z2/data
clientPort=2182
z3.cfg
dataDir=D:/opensource/zookeeper/zookeeper-3.4.6/z3/data
clientPort=2183
注意上面的dataDir要用绝对路径,不然会报错(对windows支持不好,没办法)
5.3 启动服务端
这里要开3个cygwin
cd /cygdrive/d/opensource/zookeeper/zookeeper-3.4.6/
./bin/zkServer.sh start-foreground ./z1/z1.cfg
./bin/zkServer.sh start-foreground ./z2/z2.cfg
./bin/zkServer.sh start-foreground ./z3/z3.cfg
5.4 启动客户端
这里不要用cygwin,用dos命令即可。用了cygwin会出现输入不了命令的卡死问题。
zkCli -server 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
- 大小: 25 KB
分享到:
相关推荐
**正文** 在分布式系统领域,ZooKeeper 是一...通过本文的介绍,你应该对 ZooKeeper 客户端的基本使用有了初步认识。为了深入理解,可以继续学习 ZooKeeper 的高级特性,如 ZNode 的权限控制、Watcher 的触发机制等。
本工程用于初步研究ZooKeeper的应用 本工程编码方式:UTF-8 开发工具:Eclipse 参考博客:http://littlerich.top/2017/09/10/大数据_分布式服务框架zookeeper管理分布式环境中的数据/
2. **数据处理**:Spout将数据发送到Bolt进行初步处理。 3. **任务分配**:Zookeeper根据当前集群状态动态调整任务分配。 4. **结果输出**:经过多级处理后的数据最终输出至指定位置。 #### 五、应用场景 1. **...
微服务分布式系统架构是当前软件开发领域的热点技术之一,它允许开发人员将一个大的应用系统划分为若干个小的、独立的服务。...通过课程的学习,学习者能够建立起对微服务架构的全面认识,并具备初步的应用能力。
这篇文章主要聚焦于storm在Clojure语言环境下如何通过cluster.clj文件与Zookeeper集群进行交互,提供了对相关源码的初步分析。 首先,我们要知道Zookeeper在storm中的角色。Zookeeper是一个分布式协调服务,它在...
通过这个简单的"HelloWorld"实例,我们可以初步理解Dubbo与Zookeeper的配合工作原理,进一步学习时可以尝试更复杂的场景,如集群负载均衡、服务限流、熔断等高级特性,以提升微服务架构的稳定性和可扩展性。...
首先,Nginx根据预设的限流规则(这些规则可以存储在Zookeeper中)对请求进行初步过滤。然后,如果需要更精细的控制,Nginx可以将部分请求转发到后端服务,后端服务会再次通过Zookeeper获取最新的限流策略。这样,...
### 初步认识Zookeeper Zookeeper的主要功能包括命名服务、配置管理、分布式同步、组服务等。它的设计目标是简化分布式系统中的状态同步问题,提供高可用性、顺序访问控制以及故障恢复机制。 ### 数据存储 ...
【描述】提到“初步学习的可以看看,我也是慢慢跟着这些研究,还有些不懂,我们一起学”,这表明这份手册不仅适合初次接触Zookeeper的读者,也适合正在探索和学习Zookeeper的人。它可能涵盖了基础知识和一些实践案例...
Rabbit从头搭建一个RPC框架,初步打算使用Netty进行数据通信,后期可能会增加BIO和NIO的方式因为是小白入门级别,所以项目代号Rabbit1、首先,先解释下RPC:RPC = Remote Procedure Call ,远程过程调用,它能够通过...
**PyPI 官网下载 | joca-1.3.0.tar.gz** PyPI(Python Package Index...以上是对`joca-1.3.0.tar.gz`的初步解析和相关知识点介绍。具体的使用方法和功能细节,还需要查看Joca库的官方文档或源代码以获取更准确的信息。
在IT安全领域,"提权"(Privilege Escalation)是一种常见的技术,指的是攻击者在获取了系统或网络中的初步访问权限后,通过利用软件漏洞、配置错误或其他手段,进一步提升自己的权限,最终可能达到管理员(Admin)...
这个版本号“0.0.3”表明这是该库的一个早期版本,可能包含了初步的功能实现和稳定性改进。在Python中,使用tar.gz格式打包是为了在保持文件压缩的同时,保留文件的原始目录结构,方便解压后直接使用。 “cvauto”...
标题中的"PyPI 官网下载 | sphinxcontrib-zopeext-0.2.1.tar.gz"表明我们讨论的是一个Python项目的源代码包,该包来源于...由于具体源代码未给出,更多细节无法进一步阐述,但这些信息足以让我们对这个库有初步的了解。
在IT行业中,Python是一种...以上是对"rdptools-0.1.1.tar.gz"的初步分析,具体的功能和使用方法需要查阅该库的官方文档或源码来获取更详尽的信息。对于Python开发者,熟悉和利用PyPI资源是提高开发效率的关键一步。
描述中提到的"资源全名:TOPOSIS-vinayKishoreGautam-101803473-1.2.1.tar.gz"确认了我们对文件的初步理解,即这确实是一个从PyPI获取的名为TOPOSIS的Python库的特定版本。 从标签"zookeeper 分布式 云原生 cloud ...
通过这个简单的项目,我们可以初步了解Spring、Zookeeper和Dubbo的集成和工作流程。然而,实际生产环境中,还需要考虑更多的因素,比如服务的监控、性能优化、安全控制等。这个项目只是一个起点,帮助开发者理解和...