zookeeperC语言API编程指南
zookeeper是用java语言编写的分布式集群,我们可以基于zookeeper搭建分布式应用。通常zookeeper作为服务器运行,分布式应用需要使用客户端API与zookeeper进行通信。
zookeeper官方主要提供了java语言版本的API以及C语言API。下面基于C语言API进行编程说明。
下载编译
对于zookeeper执行程序和C语言API需分开下载,因为官方打包的zookeeper二进制程序默认不包含zokeeper-client-c。
若只是下载zookeeper二进制程序,直接使用如下连接下载:
https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz
下载该文件后直接解压即可运行。
若要使用C语言API则需要下载zookeeper的源码,如下:
https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0.tar.gz
编译C语言API需要依赖java生成zookeeper.jute.c,用于序列化信息,因而编译zookeeper-c-client有两种方式:
-
先用maven编译zookeeper,编译完成后会在zookeeper-client-c目录自动生成generated目录,里面含有zookeeper-c-client依赖的zookeeper.jute.c和zookeeper.jute.h;然后再编译zookeeper-client-c,大致流程步骤如下:
tar -xvf apache-zookeeper-3.8.0.tar.gz
cd apache-zookeeper
mvn clean compile -Dmaven.test.skip=true
cd zookeeper-client/zookeeper-client-c
autoreconf -if
./configure
make
make install -
从其他地方拷贝generated目录到zookeeper-c-client下面,然后再进行编译,这一般适用于目标机器无法联网;
cd zookeeper-client/zookeeper-c-client
autoreconf -if
./configure
make
make install
编译下载完成后就可以使用C语言来编写基于zookeeper的分布式应用。