<Using ZooKeeper><Deploy & Use>
安装与部署
- 配置过程相当简单。集群模式部署:
wget http://www-us.apache.org/dist/zookeeper/stable/zookeeper-3.4.10.tar.gz
tar -xzf zookeeper-3.4.10.tar.gz
cp zoo_sample.cfg zoo.cfg
- 修改zoo.cfg如下
- mkdir `dataDir`
- 在dataDir下建立文件myid。里面对应的是该host的myid。
- 配置文件 zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes. 该目录下需要myid文件
dataDir=/root/wttttt/zookeeper/zkDataDir
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
server.1=host98:2888:3888
server.2=host99:2888:2888
server.3=host101:2888:3888 - 启动成功后,验证三台机器的情况:
- zk的bin目录下有一些可执行脚本
- zkCleanup: 清理zk历史数据,包括事务日志文件和快照数据文件
- zkCli: zk的一个简易客户端
- zkEnv: 设置zk的环境变量
- zkServer: zk服务器的启动、停止和重启脚本
客户端脚本
- 启动客户端sh zkCli.sh。看到输出: (sh zkCli.sh -server ip:port)
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
则说明client已经成功连接上本地zk server(启动时没有指定zk地址则默认连接本地zk server)了。 - 创建:create [-s] [-e] path data acl [-s 持久节点] [-e 临时节点]
如下是在根目录下创建了一个叫做/zk-test的临时节点,节点的数据内容是“123”,默认不做任何权限控制。[zk: localhost:2181(CONNECTED) 0] create -e /zk-test 123
Created /zk-test - 读取:
- ls命令,可以列出zk指定节点下的所有子节点 ls path [watch]
[zk: localhost:2181(CONNECTED) 2] ls /
[zk-test, zookeeper]
[zk: localhost:2181(CONNECTED) 3] ls /zk-test
[] - get命令,可以获取zk指定节点的数据内容和属性信息。 get path [watch]
[zk: localhost:2181(CONNECTED) 4] get / cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x100000002
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 2
[zk: localhost:2181(CONNECTED) 5] get /zk-test
123
cZxid = 0x100000002
ctime = Sun Sep 24 15:29:48 CST 2017
mZxid = 0x100000002
mtime = Sun Sep 24 15:29:48 CST 2017
pZxid = 0x100000002
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x25eb2c360850000
dataLength = 3
numChildren = 0
- ls命令,可以列出zk指定节点下的所有子节点 ls path [watch]
- 更新:set命令,可以更新指定节点的数据内容 set path data [version]
[zk: localhost:2181(CONNECTED) 6] set /zk-test 1234
cZxid = 0x100000002
ctime = Sun Sep 24 15:29:48 CST 2017
mZxid = 0x100000003
mtime = Sun Sep 24 15:35:45 CST 2017
pZxid = 0x100000002
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x25eb2c360850000
dataLength = 4
numChildren = 0可以看到更新之后,节点的mZxid加一了。dataVersion也从0变成1了。
- 删除:delete命令,可以删除zk上指定的节点。 delete path [version]
Java客户端API的使用
- TBD...
<Using ZooKeeper><Deploy & Use>的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- Wannafly挑战赛26 B 冥土追魂
首先,证明结果一定是取某些整行,再加上一个多余的一行的前几个. 假如: x1<=x2<=x3<=x4<=x5 y1<=y2<=y3<=y4<=y5 取6 ...
- 关于java和c语言中,变量重名问题
请看下面的两段代码: #include <iostream>#include <cstdio>#include <cstring> using namespace ...
- Confluence 6 空间标识
每一个 Confluence 空间都有一个 空间标识(space key),这个空间标识是简短并且是唯一的,这个标识被用来构建到空间的 URL 中. 当你创建一个站点空间,Confluence 将会为 ...
- 20165309 实验三 敏捷开发与XP实践
2017-2018-2 20165309实验三<Java面向对象程序设计>实验报告 一.实验内容 1. XP基础 2. XP核心实践 3. 相关工具 二.实验步骤 (一)代码规范 1.在I ...
- 『MXNet』第十弹_物体检测SSD
全流程地址 一.辅助API介绍 mxnet.image.ImageDetIter 图像检测迭代器, from mxnet import image from mxnet import nd data_ ...
- NABCD框架(作业和事件的定期提醒)及第八周学习进度条
NABCD框架(作业和事件的定期提醒): N(need,需求): 你的创意解决了用户的什么需求? 我们的创意能够一定程度上督促我们的用户(学生)尽快完成自己近期的任务或者是作业.我们认为如果增设定时提 ...
- 如何引用GitHub的静态资源文件 js css
参考:引用GitHub的静态资源文件 有些人说直接用 Github Raw 浏览器不执行是因为返回的 content-type 是 text/plain,这么说不准确.实际上浏览器对 MIME 类型并 ...
- CentOS7和CentOS6的区别
1.文件系统 centos6--ext4 centos7--xfs 说明:fdisk等磁盘操作命令使用都一样,只是格式化磁盘时使用mkfs.xfs而不要用mkfs.ext4,ext4的文件系统在cen ...
- windows启动/禁用telnet/IIS/ftp/IE等服务
将需要启动的钩选,将要禁用的取消钩选确定即可:比如我这里要启动telnet客户端. 启动IIS将IIS可承载的Web核心和Internet两大项全钩选上即可,钩多了不影响功能.
- 使用MongoDB数据库(1)(三十五)
MongoDB简介 MongoDB是一个基于分布式文件存储的数据库,它是一个介于关系数据库和非关系数据库之间的产品,其主要目标是在键/值存储方式(提供了高性能和高度伸缩性)和传统的RDBMS系统(具有 ...