<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 安装并启动 ...
随机推荐
- apiCloud 上拉加载
api.addEventListener({ name:'scrolltobottom', extra:{threshold:} }, function(ret, err){ //上拉加载时需要加载的 ...
- 【洛谷p1258】小车问题
(……吓人,心有余悸) 小车问题[传送门] 洛谷算法标签:: (行吧它居然是个二分[解方程的我抖抖发瑟]) 作为一个写了一页演草纸才解出来的方程,显然我要好好写一写(希望不会半途而废) 思路: 先把其 ...
- Redis之下载安装及基本使用
redis window系统的redis是微软团队根据官方的linux版本高仿的 官方原版: https://redis.io/ 中文官网:http://www.redis.cn 1.1 redis下 ...
- c 语言连续输入字符型数据
#include<stdio.h> #include<stdlib.h> void Input1(char* &str){ // /* 这种情况下想要逐个输入字符串数组 ...
- CSU OJ 1340 A Sample Problem
Description My girlfriend loves 7 very much, she thinks it is lucky! If an integer contains one or m ...
- leetcode-algorithms-1 two sum
leetcode-algorithms-1 two sum Given an array of integers, return indices of the two numbers such tha ...
- 剑指offer-整数中1出现的次数
题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了. ...
- win10 中redis client提示 ERR Client sent AUTH,but no password is set
[问题原因]Redis服务器没有设置密码,但客户端向其发送了AUTH(authentication,身份验证)请求. [解决办法] 确定Redis启动时指定是哪个配置文件 如上图是 redis.win ...
- PyCharm+Scrapy爬取安居客楼盘信息
一.说明 1.1 开发环境说明 开发环境--PyCharm 爬虫框架--Scrapy 开发语言--Python 3.6 安装第三方库--Scrapy.pymysql.matplotlib 数据库--M ...
- telnet的装配及xinetd的讨论
telnet由于是不安全的明文传输所以基本被ssh取代了,尤其是在Linux上:不过还是可能会用到,且启停方式还有些不同所以还是有必要说明一下. rpm -qa | grep telnet #查看是否 ...