1.Zookeeper的安装使用

在官网上下载zk的安装包(http://labs.renren.com/apache-mirror/zookeeper/),解压后cd到zk的目录下。

单机版安装方法:

在conf目录下创建一个 “zoo.cfg”的默认配置文件,稍后我们将用到它,编辑其内容为:

tickTime=2000
dataDir=~/src/zktest
clientPort=2181

zk的存储结构类似于文件系统,分为很多节点,每个节点会有值和一些权限控制信息。
2.启动service和client

service:bin/zkServer.sh
start

client:bin/zkCli.sh  -server 127.0.0.1:2181

启动之后可以用help命令察看命令列表

zk的存储结构类似于

3.编写客户端的一个HelloWorld

3.1建立节点信息:

        struct ACL acl[] =
{
{ZOO_PERM_ALL,{"world","anyone"}}
};
int demo_acl_size1 = sizeof(acl)/sizeof(acl[0]);
struct ACL_vector acl_vector = { demo_acl_size1, acl };
int rc = zoo_create(this->zh, “/test”, "test_value", 10, &acl_vector, 0, 0, 0);
if (rc !=ZOK) {
std::cerr<< zerror(rc) <<std::endl;
exit(-1);
}

在zk的命令行客户端中 输入命令 get /test 就会发现值“test_value ”已存在于节点 /test 下。

3.1向节点中赋值

void zk_set(const char *path, const char *value){
int len = strlen(value);
Stat stat;
int rc = zoo_set2(this->zh, path, value, len, -1, &stat);
if (rc != ZOK) {
std::cerr << zerror(rc) << std::endl;
}
//std::cout<<"Set Value:"<<value<<" for path:"<<path<<" succeed!"<<std::endl;
}

3.2取得节点中的值

char *zk_get(const char *path){

	int buf_len = sizeof(this->buf);
struct Stat stat;
//zhandle_t *zh1 = zookeeper_init("127.0.0.1:2181", 0, 10000, 0, 0, 0);
int rc = zoo_get(zh, path, 0, this->buf, &buf_len, &stat);
if (rc != ZOK){
std::cerr<< zerror(rc) <<std::endl;
exit(-1);
}
std::cout<<strlen(buf)<<std::endl;
return this->buf;
}

Zookeeper Hello World的更多相关文章

  1. 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)

    一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...

  2. [译]ZOOKEEPER RECIPES-Leader Election

    选主 使用ZooKeeper选主的一个简单方法是,在创建znode时使用Sequence和Ephemeral标志.主要思想是,使用一个znode,比如"/election",每个客 ...

  3. zookeeper源码分析之六session机制

    zookeeper中session意味着一个物理连接,客户端连接服务器成功之后,会发送一个连接型请求,此时就会有session 产生. session由sessionTracker产生的,sessio ...

  4. zookeeper源码分析之五服务端(集群leader)处理请求流程

    leader的实现类为LeaderZooKeeperServer,它间接继承自标准ZookeeperServer.它规定了请求到达leader时需要经历的路径: PrepRequestProcesso ...

  5. zookeeper源码分析之四服务端(单机)处理请求流程

    上文: zookeeper源码分析之一服务端启动过程 中,我们介绍了zookeeper服务器的启动过程,其中单机是ZookeeperServer启动,集群使用QuorumPeer启动,那么这次我们分析 ...

  6. zookeeper源码分析之三客户端发送请求流程

    znode 可以被监控,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化可以通知设置监控的客户端,这个功能是zookeeper对于应用最重要的特性,通过这个特性可以实现的功能包括配置的 ...

  7. zookeeper源码分析之二客户端启动

    ZooKeeper Client Library提供了丰富直观的API供用户程序使用,下面是一些常用的API: create(path, data, flags): 创建一个ZNode, path是其 ...

  8. zookeeper源码分析之一服务端启动过程

    zookeeper简介 zookeeper是为分布式应用提供分布式协作服务的开源软件.它提供了一组简单的原子操作,分布式应用可以基于这些原子操作来实现更高层次的同步服务,配置维护,组管理和命名.zoo ...

  9. zookeeper集群的搭建以及hadoop ha的相关配置

    1.环境 centos7 hadoop2.6.5 zookeeper3.4.9 jdk1.8 master作为active主机,data1作为standby备用机,三台机器均作为数据节点,yarn资源 ...

  10. 如何编译Zookeeper源码

    1. 安装Ant Ant下载地址:http://ant.apache.org/bindownload.cgi 解压即可. 2. 下载Zookeeper源码包 https://github.com/ap ...

随机推荐

  1. 安装 jdk、tomcat

    jdk 下载地址:http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java ...

  2. Getting Started Synchronizing Files

    https://msdn.microsoft.com/en-US/library/bb902813(v=sql.110).aspx Sync Framework includes a file syn ...

  3. [Lintcode two-sum]两数之和(python,双指针)

    题目链接:http://www.lintcode.com/zh-cn/problem/two-sum/ 给一个整数数组,找到两个数使得他们的和等于一个给定的数target. 备份一份,然后排序.搞两个 ...

  4. leetcode:Summary Ranges

    Given a sorted integer array without duplicates, return the summary of its ranges. For example, give ...

  5. 《OD学hadoop》第四周0716

    7.16 一.回顾 二.HDFS Federation(联盟) Hadoop 2.2.0发布新特性 很多的大公司都在使用:BAT HDFS Federation + HDFS HA架构 互相隔开,但是 ...

  6. poj 3744 Scout YYF I (矩阵快速幂 优化 概率dp)

    题目链接 分析&&题意来自 : http://www.cnblogs.com/kuangbin/archive/2012/10/02/2710586.html 题意: 在一条不满地雷的 ...

  7. Android微信SDK API 调用教程1

    最近一直在调用微信的API,却发现一直调用不成功,纠结了好久,各方面找教程,找官方,官方里的文档也只是写得很模糊,说是按三步走. 1.申请App_ID 2.填写包名3. 获取程序签名的md5值, 这三 ...

  8. 安装SQL2008的时候 出现System.Configuration.ConfigurationErrorsException: 创建 userSettings/Microsoft.SqlServe

    System.Configuration.ConfigurationErrorsException: 创建 userSettings/Microsoft.SqlServer.Configuration ...

  9. Codeforces 435 B Pasha Maximizes【贪心】

    题意:给出一串数字,给出k次交换,每次交换只能交换相邻的两个数,问最多经过k次交换,能够得到的最大的一串数字 从第一个数字往后找k个位置,找出最大的,往前面交换 有思路,可是没有写出代码来---sad ...

  10. POJ 3422 Kaka's Matrix Travels (K取方格数:最大费用流)

    题意 给出一个n*n大小的矩阵,要求从左上角走到右下角,每次只能向下走或者向右走并取数,某位置取过数之后就只为数值0,现在求解从左上角到右下角走K次的最大值. 思路 经典的费用流模型:K取方格数. 构 ...