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的应用 本工程编码方式:UTF-8 开发工具:Eclipse 参考博客:http://littlerich.top/2017/09/10/大数据_分布式服务框架zookeeper管理分布式环境中的数据/
基于zookeeper的分布式锁实现Demo,可以直接使用.一个是初步实现功能,一个是改进可以直接使用的.建议使用改进版
初步认识Zookeeper 了解Zookeeper的核心原理 Zookeeper实践及与原理分析 Zookeeper实践之配合注册中心完成RPC手写 本节我们就讲第一个部分 初步认识Zookeeper 从架构的发展说起 以电商架构为例,早期我们是单一的...
dubbo+zookeeper(maven)简单实现的项目源码,适合新手的初步了解,简单易懂~
目录导航前言数据存储基于Java API初探zookeeper的使用事件机制如何注册事件机制watcher 事件类型什么样的操作会产生什么类型的事件呢?事务的实现原理深入分析...初步认识Zookeeper 了解Zookeeper的核心原理 Zookee
Rabbit从头搭建一个RPC框架,初步打算使用Netty进行数据通信,后期可能会增加BIO和NIO的方式因为是小白入门级别,所以项目代号Rabbit1、首先,先解释下RPC:RPC = Remote Procedure Call ,远程过程调用,它能够通过...
Yan项目简介(使用说明)注:全新微服务项目lion已经逐步开发,基于SpringCloud的一整套方案,详情请查看本项目是一整合整合Dubbo + Zookeeper + SpringMVC + Spring + MyBatis支持分布式的高效率快速开发RPC框架,...
初步认识RabbitMQ及高可用集群部署 详解RabbitMQ消息分发机制及主题消息分发 RabbitMQ消息路由机制分析 RabbitMQ消息确认机制 Redis redis数据结构分析 Redis主从复制原理及无磁盘复制分析 Redis管道模式...
资源是关于nifi的一些初步涉猎,包括了单机安装nifi,使用内置的zookeeper安装集群nifi,和使用外部的zookeeper安装nifi,已经使用nifi做些简单的操作。
通过本课程,可以让学员掌握Solr的安装配置,对java使用solr的技术SolrJ以及SpringDataSolr 有一个初步的认识 。课程重点讲解了亿万级搜索系统所涉及的Dubbox、Zookeeper集群、Solr集群、Nginx负载均衡和高可用等...
本文来自于csdn,Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统.早期两个应用程序间进行消息传递需要保证两个应用程序同时在线...
对于 Java 初学者来说: 本文档倾向于给你提供一个比较详细的学习路径,让你对于Java整体的知识体系有一个初步认识。另外,本文的一些文章 也是你学习和复习 Java 知识不错的实践; 对于非 Java 初学者来说: 本文档...
java_learning_practice学习java的积累示例:面试高频算法,akka,多线程,zookeeper,Disruptor,NIO,Netty,Thrift等项目组成收集总结初步&&大数据方向看到的优秀文章和系列博客;不定期更新pdf阿卡口味akka学习...
初步调度,并提供结果查询和某些两种方法获取执行结果 分布式管理,所有耗时任务都在资源池中无状态调度。 任务查询,目前只开放通过接口查询任务的状态和结果。 最新版本:1.0-OPEN 入门 要求 Java8的 (可选) ...
初步思考 kubernetes是天然可作为微服务的地址注册中心,类似于zookeeper、Consul。 具体来说,kubernetes中的Pod是对于应用的运行实例,Pod的被调度部署/启停都会调用API-Server的服务来保持其状态到ETCD;...
初步 弹簧靴 Redis做部署 RabbitMQ将卷轴全选时的连续操作同步转换异步处理; MyBatis数据持久化; MySQL数据库 Dubbo + Zookeeper实现RPC调度和服务分割; 基于Docker容器部署; Nginx负载均衡。 前端 Vue; ...
亲缘关系高性能RPC支持基于zookeeper,redis和url直连的服务注册订阅方案支持初步启动支持使用javassist技术替代反射提高方法调用性能支持负载均衡,包括:扩展,随机,一致性HASH等支持服务路由支持kinrpc,http,...
本课程为微服务上云开发的指导课程,涵盖微服务架构解析、服务中心、路由网关、...2. 了解各个微服务组件的运行机理,初步掌握微服务开发能力; 3. 了解DevOps持续交付理念,学会使用DevCloud完成简单的敏捷开发实践。