7章Cクライアント

ZooKeeperのインタフェースとしては、Javaクライアントが最も広く用いられているが、Cクライアントも広く開発者に用いられており、他言語版のインタフェースを構築する際の基盤ともなっている。C APIを用いたZooKeeperアプリケーションの開発手法を知るために、すでに実装したマスタ・ワーカの例をCで再実装してみよう。

C APIを使う際にはZooKeeper配布パッケージに入っているzookeeper.hを参照するとよい。クライアントをビルドする方法はREADMEに書かれている。ant compile-nativeを使って、自動ビルドしてもよい。コードを見ていく前に、すぐに始められるように、開発環境を設定する方法を見ておこう。

Cクライアントをビルドすると、2つのライブラリができる。 1つはマルチスレッドクライアント用、もう1つはシングルスレッド用である。本章ではほとんどの場合、マルチスレッドライブラリを仮定している。最後のほうでシングルスレッド版についても述べるが、マルチスレッド版を使うことを推奨する。

7.1 開発環境の設定

Javaに関しては、ZooKeeperの配布パッケージに、どのプラットフォームでも実行できるコンパイル済みのJARファイルを入れることができた。Cを使ったZooKeeperネイティブアプリケーションをコンパイルするには、必要な共有ライブラリを先にビルドしておかなければならない。幸運なことに、簡単にライブラリをビルドする方法が用意されている。

一番簡単なのは、ビルドツール(http://ant.apache.org)を使う方法だ。ZooKeeperの配布パッケージを解凍すると、build.xmlというファイルがある。このファイルには、antでビルドするための手順が書かれている。他にもautomake、autoconf、cppunitが必要だが、Linuxを使っているのであれば、ディストリビューションパッケージとして入手できるだろう。WindowsではCygwinが提供している。Mac ...

Get ZooKeeperによる分散システム管理 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.