夢とガラクタの集積場

落ちこぼれ三流エンジニアである管理人の夢想=『夢』と、潰えた夢=『ガラクタ』の集積場です。

Apache Kafka入門を読んでみました

こんにちは。

この間購入した「Apache Kafka入門」を読み終わったので、
どんな本かという概要と注意点を書いてみます。

Apache Kafka入門

Apache Kafka入門

どんな本?/読んでみての感想

一言で言うと、
「内部構造や利用時の実装方法について詳細に書かれたJava開発者向けのKafka入門本」でした。
#Kafka自体はScala製ですが、この本はScala使いではなく、Java開発者向けです。

特に、Broker/Producer/Consumerのコンポーネント構造や
Kafkaのシェルで起動可能なクラスといった情報はコードを読み解かないとわからないため、貴重な情報だと思います。

Kafkaを利用する場合の各パターンについてのJavaによる実装方法も書かれており、
即Kafkaを使用してみたい、という時の参考実装として非常に役に立ちます。

加えて、Kafkaのメッセージのプロトコル構造等についても説明されているため、
Javaの外からKafkaを利用する際の参考としても役に立ちます。

ただ、一点気になった点としては実際の実装や使い方をベースに記述されているため、
Apache Kafka 概要(Design)和訳まとめ」にあるようなKafkaの設計思想やKafkaに使用している技術要素に対する内容が
散逸/一部省略されてしまっているということがあります。

とはいえ、だからどうするか、という点については電子専用書籍であることをいいことに
多少の内容重複は許容して「そもそもKafkaとは何か?」という内容を詳細化して章として独立して記述してしまう、位しかないのですが。

何にしても現状Apache Kafkaについて
最もまとまった日本語情報であることは確かだと思います。
そのため、下記のページを見てKafkaを実際に使ってみたい、と思った方は購入することをお勧めします。
Apache Kafka 概要(Design)和訳まとめ
Apache Kafkaのレプリケーション

注意点

残念ながら旧バージョンであるKafka-0.7系準拠のため、
現行バージョンであるKafka-0.8系においては下記のような違いが出てきてしまっています。

  • Broker間で1つのパーティションのコピーを確保する「レプリケーション」が可能になっている。(重要!)
  • ProducerはZooKeeperを使用せず、Brokerからメタデータを取得する方式に変更されている。
  • ProducerにBrokerから応答が返るようになり、タイミングも選択できるようになっている。
  • Topic固有設定を設定ファイルではなく、ZooKeeperに投入して後付けで設定できるようになっている。
  • Topic中のパーティションの概念がBroker毎に数を確保される方式からクラスタ全体で採番する方式に変わっている。

ですが、このバージョン追従についても6月末までに更新されるとのことのため、
バージョンが更新されたらこれらの問題も解消しそうです。

あとは、実際に使う際のソースコードが充実しているにもかかわらず、
Kindle上でしか見れず、開発時に写経するしかないというのはかなり惜しいです。
#これは内容とは直接関係ないですが。

・・・とまぁ、こんな感じでした。
購入を検討したり、興味がある方がいれば参考にしてください。

宣伝

Apache Kafka入門にはKafkaのインストール方法も述べられていますが、
下記のページのKafka-Installerを使えばApache Kafkaをよりお手軽に使うことができますので、
読んで実際にKafkaを使ってみたいという方がいれば是非使ってみてください。

https://github.com/kimutansk/kafka-installer