ZooKeeperによる分散システム管理

最近作っているdistributed-git-serverではクラスタの状態管理にMySQLを使っているのですが、ロックをRDBで実装したり、ハートビートやノードの状態管理などを自前で実装する必要があり、だいぶ面倒だなぁと感じていました。ZooKeeperを使えばこのような課題をうまく処理することができるかもしれないと思い、この本を読んでみています。

個人的にはこれまであまり縁がなかったのですが、ZooKeeperは元々米Yahooで開発されたもので、Hadoop関連プロダクトやSolr、Kafkaなど様々な分散ミドルウェアクラスタの状態管理などの用途に利用されています。ざっくり言えば通知機能を持った高可用なディレクトリインデックスサービスのようなもので、これをうまく利用することで分散ミドルウェアにおける様々な課題を解決できる基盤となるソフトウェアです。

この書籍は基本的にはZooKeeperを使って分散ミドルウェアを開発する開発者向けに書かれており、ノードの管理、マスタの選出、タスクのキューイングなど分散ミドルウェアにおける一般的な課題について、ZooKeeperの機能をどのように利用すれば解決できるかが解説されています。また、ZooKeeperの内部構造についても説明されているのでZooKeeperを使ったミドルウェアを利用する場合にも役に立つと思いますし、分散ミドルウェアを開発している、もしくは興味のある人であればZooKeeperを使わないにしても同じような仕組みを実装することになるであろうと思われるので参考になる部分があるのではないでしょうか。