第 7 章 C 客户端 C 客户端
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
尽管 ZooKeeper 的 Java 接口是最主要的接口,但 C ZooKeeper 客户端绑定也深受 ZooKeeper 开发人员的欢迎,并构成了其他语言绑定的基础。本章将重点介绍这种绑定。为了说明如何使用 C API 开发 ZooKeeper 应用程序,我们将用 C 语言重新实现我们的 master-worker 示例中的 master。
C API 的主要参考资料是ZooKeeper发行版中的zookeeper.h文件,而构建客户端库的说明则在项目发行版的README文件中给出。另外,你也可以使用ant compile-native,它能自动完成所有工作。在介绍代码片段之前,我们先简要介绍一下如何设置开发环境,以帮助你入门。
当我们构建 C 客户端时,会生成两个库:一个用于多线程客户端,另一个用于单线程客户端。本章大部分内容都假定使用的是多线程库;我们将在本章末尾讨论单线程版本,但我们鼓励读者专注于多线程实现。
设置开发环境
在ZooKeeper发行版中,我们可以发送预编译好的JAR文件,这些文件可以在任何平台上运行。要使用C语言进行本地编译,我们需要先构建所需的共享库,然后才能构建本地C语言的ZooKeeper应用程序。幸运的是,ZooKeeper提供了构建这些库的简便方法。
编译 ZooKeeper 原生库最简单的方法是使用ant 编译工具。 在解压 ZooKeeper 发行版的目录下,有一个名为build.xml 的文件,该文件包含ant编译所有内容所需的说明。 此外,你还需要automake、autoconf 和cppunit。 如果你使用 Linux,这些软件包应该可以在你的主机发行版中找到。 在 Windows 上,Cygwin 提供了这些软件包。 在 Mac OS X 上,你可以使用 Fink、Brew 或 MacPorts 等开源软件包管理器。
安装好所有需要的应用程序后,就可以使用 ZooKeeper 来构建库了:
ant compile-native
编译完成后,你会在build/c/build/usr/lib中找到需要链接的库,并在build/c/build/usr/include/zookeeper 中找到需要的包含文件。
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access